2、在排序的过程中的变化为(1)8447251521(2)1547258421(3)1521258447(4)1521254784则采用的排序是()。A.选择B.冒泡C.快速D.插入4.下列排序算法中()排序在一趟结束后不一定能选出一个元素放在其最终位置上。A.选择B.冒泡C.归并D.堆5.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。A.(38,40,46,56,79,84)B.(40,38,46,79,56,84)C.(40,38,46,56,79,84)D.(40,38,46,84
3、,56,79)6.下列排序算法中,在待排序数据已有序时,花费时间反而最多的是()排序。A.冒泡B.希尔C.快速D.堆7.就平均性能而言,目前最好的内排序方法是()排序法。A.冒泡B.希尔插入C.交换D.快速8.下列排序算法中,占用辅助空间最多的是:()A.归并排序B.快速排序C.希尔排序D.堆排序9.若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行()次比较。A.3B.10C.15D.2510.快速排序方法在()情况下最不利于发挥其长处。A.要排序的数据量太大B.要排序的数据中含有多个相同值C.要排序的数据个数为奇数D.要排序的
4、数据已基本有序11.下列四个序列中,哪一个是堆()。A.75,65,30,15,25,45,20,10B.75,65,45,10,30,25,20,15C.75,45,65,30,15,25,20,10D.75,45,65,10,25,30,20,1512.有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为()A.-1,4,8,9,20,7,15,7B.-1,7,15,7,4,8,20,9C.-1,4,7,8,20,15,7,9D.A,B,C均不对。二、填空题1.若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的
5、相对次序仍然保持不变,则称这种排序方法是________的,否则称为________的。2.按照排序过程涉及的存储设备的不同,排序可分为________排序和________排序。3.直接插入排序用监视哨的作用是___________________________。4.对n个记录的表r[1..n]进行简单选择排序,所需进行的关键字间的比较次数为_______。5.下面的c函数实现对链表head进行选择排序的算法,排序完毕,链表中的结点按结点值从小到大链接。请在空框处填上适当内容,每个空框只填一个语句或一个表达式:#includetypede
6、fstructnode{chardata;structnode*link;}node;node*select(node*head){node*p,*q,*r,*s;p=(node*)malloc(sizeof(node));p->link=head;head=p;while(p->link!=null){q=p->link;r=p;while((1)____________){if(q->link->datalink->data)r=q;q=q->link;}if((2)___________){s=r->link;r->link=s->link;s-
7、>link=((3)_________);((4)_________);}((5)________);}p=head;head=head->link;free(p);return(head);}6.下面的排序算法的思想是:第一趟比较将最小的元素放在r[1]中,最大的元素放在r[n]中,第二趟比较将次小的放在r[2]中,将次大的放在r[n-1]中,…,依次下去,直到待排序列为递增序。(注:<-->)代表两个变量的数据交换)。voidsort(SqList&r,intn){i=1;while((1)______){min=max=1;for(j=i+1;(2)__
8、______;++j){if((3)_