数据结构习题-带答案-12-13-2 下载本文

6.基数排序的设计思想是依照对单个关键字值的比较来实施的。 ( )

7.用希尔(Shell)排序方法进行排序的时候,关键字越是有序效率越高,关键字越是杂乱则排序效率越低。 ( )

8.减少初始归并数量,可以使外部排序的时间缩短。 ( ) 9.直接插入排序是一种稳定的排序算法。 ( ) 10.希尔排序是一种稳定的排序算法。 ( ) 11.冒泡排序是一种稳定的排序算法。 ( ) 12.冒泡排序算法的时间复杂度最佳情况下为O(n2)。 ( ) 13.快速排序是一种稳定的排序算法。 ( ) 14.直接选择排序是一种稳定的排序算法。 ( ) 15.堆排序是一种稳定的排序算法。 ( ) 16.快速排序、堆排序和归并排序平均时间复杂度为O(nlog2n)。 ( ) 17.归并排序是一种稳定的排序算法。 ( ) 18.基数排序是一种稳定的排序算法。 ( ) 19.目前归并排序在内部排序和外部排序中都广为使用。 ( ) 20.当排序的记录数量很多,可能出现正序或逆序情况的时候,可以选择堆排序,如果进一步要求排序方法稳定的时候,则要选择归并排序。 ( )

21.在执行某个排序算法过程中,出现了排序码朝着最终排序序列位置相反方向移动,则该算法是不稳定的。 ( )

22.二路归并排序的核心操作是将两个有序序列归并为一个有序序列。 ( ) 四、综合题

1.已知一组记录的关键字序列为{41,60,39,72,25,44,90,31},请写出直接插入排序的每一趟过程。

2.已知一组记录的关键字序列为{36,55,31,28,79,66,12,07,89},请写出进行冒泡排序的每一趟过程。

3.已知一组记录的关键字序列为{35,27,60,72,50,40,17,81,29,69,30},请写出以第一个记录为基准记录,一趟快速排序时记录的移动情况。

4.已知一组记录的关键字序列为{76,98,23,65,40,39,52,65,87,11},请写出直接选择排序的每一趟过程。

5.已知一组记录的关键字序列为{22,96,15,37,10,68,44,85,70,20,11},请写出用归并排序进行排序的每一趟过程。

6.设计一个函数,实现冒泡排序的双向排序,即每一趟通过每两个相邻的关键字进行比较,产生最小和最大的关键字值的元素。

7.用递归的方法实现一趟归并排序,并写出完整的归并算法。

8.有一种算法称为奇偶转换排序,它的思路是:第一趟对所有的奇数i将a[i]和a[i+l]进行比较,第二趟对所有的偶数的i将a[i]和a[i+l]进行比较,每次比较时,若a[i]>a[i+l],则将二者进行交换,直至所有记录关键字有序。试写出此算法。

37