有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个元素,扫描待排序的表一趟,统计表中有多少个元素的关键字比该元素的关键字小。假设对某一个元素,统计出该数值为c,那么这个元素在新的有序表中的合适的存放位置即为c。 (1)设计实现计数排序的算法。 (2)对于有n个元素的表,比较次数是多少? (3)与简单选择排序相比,哪种方法是否更好?为什么?

有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个元素,扫描待排序的表一趟,统计表中有多少个元素的关键字比该元素的关键字小。假设对某一个元素,统计出该数值为c,那么这个元素在新的有序表中的合适的存放位置即为c。 (1)设计实现计数排序的算法。 (2)对于有n个元素的表,比较次数是多少? (3)与简单选择排序相比,哪种方法是否更好?为什么?


参考答案和解析
错误

相关考题:

如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。(41)是稳定的排序方法,因为这种方法在比较相邻元A.冒泡排序B.希尔排序C.快速排序D.简单选择排序

有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。① 给出适用于计数排序的顺序表定义;② 编写实现计数排序的算法;③ 对于有n个记录的表,关键字比较次数是多少?④ 与简单选择排序相比较,这种方法是否更好?为什么?

如果在待排序序列中有两个元素具有相同的值,排序使它们的位置发生颠倒,则称该排序算法是不稳定的,下列哪种排序算法是不稳定的? ( )A.堆排序B.归并排序C.基数排序D.起泡排序

以下关于排序算法的叙述中,正确的是( )。A.冒泡排序法中,元素的交换次数与元素的比较次数一定相同B.冒泡排序法中,元素的交换次数不少于元素的比较次数C.简单选择排序中,关键字相同的两个记录在排序前后的相对位置一定不变D.简单选择排序中,关键字相同的两个记录在排序前后的相对位置可能交换

若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。下列排序算法中,有(14)种排序算法是稳定的:归并排序、快速排序、希尔排序、堆排序、基数排序、直接插入排序、冒泡排序、直接选择排序。A.3B.4C.5D.6

在每一趟排序过程中,都将待排序序列中最大关键字选出来,并将它从待排序序列中剔除,继续对剩余元素进行同样操作的排序方法,这种排序方法称为( )。A.基数排序B.堆排序C.起泡排序D.选择排序

● 如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。 (41) 是稳定的排序方法,因为这种方法在比较相邻元素时,值相同的元素并不进行交换。(41)A. 冒泡排序B. 希尔排序C. 快速排序D. 简单选择排序

快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分成两个部分,前面一部分元素值小于等于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了( )算法设计策略。已知确定基准元素操作的时间复杂度为Θ(n),则快速排序算法的最好和最坏情况下的时间复杂度为(请作答此空)。

排序算法的稳定性是指( )。A.经过排序后,能使关键字相同的元素保持原顺序中的相对位置不变B.经过排序后,能使关键字相同的元素保持原顺序中的相对位置改变C.排序算法的性能与被排序元素个数关系不大D.排序算法的性能与被排序元素个数关系密切

数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用()算法最节省时间。A、冒泡排序B、快速排序C、简单选择排序D、堆排序

对于n个元素构成的线性表,采用简单选择排序共需进行()趟排序。

如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的,()就是不稳定的排序方法。A、起泡排序B、归并排序C、Shell排序D、直接插入排序E、简单选择排序

每次直接或通过基准元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做()排序;每次使两个相邻的有序表合并成一个有序表的排序方法叫做()排序。

下列排序算法中,哪种排序方法在一趟结束后不一定能选出一个元素放在其最终位置上。()A、 简单选择排序B、 冒泡排序C、 归并排序D、 堆排序

排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是()A、折半插入排序B、直接插入排序C、归并排序D、选择排序

排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较,然后将其放入已排序序列的正确位置的方法是()A、冒泡排序B、直接插入排序C、归并排序D、选择排序

排序算法中,从尚未排序序列中依次取出元素与已排序序列(初始为空)中的元素进行比较(要求比较次数尽量少),然后将其放入已排序序列的正确位置的方法是()

对用数组存储的线性表(16,15,32,11,6,30),用快速排序算法进行由小到大排序,若排序下标范围为0~5,选择元素16作为支点,调用一趟快速排序算法后,元素16在数组中的下标位置为()

如果待排序序列中两个数据元素具有相似的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的,()就是不稳定的排序算法。A、起泡排序B、归并排序C、Shell排序D、直接插入排序E、简单选择排序

一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完,这种排序算法被称为()。A、冒泡排序B、选择排序C、插入排序D、快速排序

填空题对用数组存储的线性表(16,15,32,11,6,30),用快速排序算法进行由小到大排序,若排序下标范围为0~5,选择元素16作为支点,调用一趟快速排序算法后,元素16在数组中的下标位置为()

单选题一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完,这种排序算法被称为()。A冒泡排序B选择排序C插入排序D快速排序

填空题每次从无序表中取出一个元素,把它插入到有序表中的适当位置,此种排序方法叫做()排序;每次从无序表中挑选出一个最小或最大元素,把它交换到有序表的一端,此种排序方法叫做()排序。

填空题每次直接或通过基准元素间接比较两个元素,若出现逆序排列时就交换它们的位置,此种排序方法叫做()排序;每次使两个相邻的有序表合并成一个有序表的排序方法叫做()排序。

单选题数据表中有10000个元素,如果仅要求求出其中最大的10个元素,则采用()算法最节省时间。A冒泡排序B快速排序C简单选择排序D堆排序

单选题在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是__(1)__。从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为__(2)__。设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用__(3)__排序法。空白(1)处应选择()A希尔排序B起泡排序C插入排序D选择排序

单选题在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是__(1)__。从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为__(2)__。设有1000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,最好选用__(3)__排序法。空白(2)处应选择()A希尔排序B起泡排序C插入排序D选择排序

单选题下列内部排序算法中在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,kA快速排序B直接插入排序C二路归并排序D简单选择排序E.起泡排序F.堆排序