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