有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
① 给出适用于计数排序的顺序表定义;
② 编写实现计数排序的算法;
③ 对于有n个记录的表,关键字比较次数是多少?
④ 与简单选择排序相比较,这种方法是否更好?为什么?
第1题:
2、关于排序算法说法不正确的是()。
A.冒泡排序和选择排序都属于交换类的排序算法。
B.冒泡排序是一种稳定的排序算法。
C.对于同一个待排序列进行排序,使用选择排序比冒泡排序具有更少的元素交换次数。
D.冒泡排序是一种通过多次选择最值并把它交换至数列一端,最终使数列达到有序的排序算法。
第2题:
2、请对元素序列27, 6, 32, 48, 26, 17, 63进行排序(注意:不要写错关键字造成扣分): (1) 请用直接插入排序算法进行排序,写出第一趟排序结果:____________。 (2) 请用冒泡排序算法进行排序,写出第一趟排序结果:____________。 (3) 请用两路合并排序算法进行排序,写出第一趟排序结果:____________。 (4) 请用快速排序算法进行排序,写出第一趟排序结果:____________。
第3题:
对初始状态为递增序列的表按递增顺序排序,最省时间的是 算法,最费时间的是 算法。
A.堆排序、简单选择排序
B.直接插入排序、快速排序
C.快速排序、合并排序
D.堆排序
第4题:
17、假设待排序的表长为n,那么下列排序算法中,()排序算法需要O(n)的辅助空间。
A.简单选择
B.插入
C.冒泡
D.归并
第5题:
以下排序算法中,适合记录个数很大,但待排序关键字位数很少的排序算法是()。
A.快速排序
B.归并排序
C.堆排序
D.基数排序