国家开放大学

排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是()。A直接插入排序B快速排序C冒泡排序D选择排序

题目
排序过程中,每一趟从无序子表中将一个待排序的记录按其关键字的大小放置到已经排好序的子序列的适当位置,直到全部排好序为止,该排序算法是()。

A直接插入排序

B快速排序

C冒泡排序

D选择排序

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

用下列4种排序方法,对一个已排好序(由小到大)的序列进行排序(由小到大),哪种方法最好?

A.冒泡排序

B.直接选择排序

C.直接插入排序

D.归并排序


正确答案:C
解析:直接插入排序的基本算法是:当插入第i(i>=1) 个对象时,前面的V[0],V[1],…,V[i-1) 已经排好序,这时,用V[i]的关键码与V[i-1],[i-2]...的关键码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象则向后移。
  由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关,准确地说,就是与可以取的值有关。在本题中,序列已经排好了序,所以其i的取值达到了最大,就是序列中元素的个数,其实也就是根本无须比较和交换,所以这种方法是最经济的。

第2题:

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

A.基数排序

B.堆排序

C.起泡排序

D.选择排序


正确答案:B
解析:若将堆看成一个完全二叉树对应的序列,则完全二叉树中所有非终端结点的值均不大于(不小于)其左右孩子结点的值。堆排序每次都选出最大或最小的结点。

第3题:

快速排序的基本思想是将每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。()

此题为判断题(对,错)。


参考答案:错误

第4题:

下列对排序的概念描述完整的是()

  • A、正序排序
  • B、其它三项都不对
  • C、倒序排序
  • D、排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为有序”的记录序列

正确答案:D

第5题:

从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为()。

A插入排序

B归并排序

C选择排序

D交换排序


B

第6题:

每趟排序都从序列的未排好序的序列中挑选一个值最小(或最大)的元素,然后将其与未排好序的序列的第一个元素交换位置。此种排序法称为(54)。

A.插入排序法

B.选择排序法

C.希尔排序法

D.快速排序法


正确答案:B
解析:选择排序方法是每一趟排序从未排序的子序列中依次取出元素与已经排好序的序列中的元素进行比较,然后将其与未排好序的序列的第一个元素交换位置。因此选B。

第7题:

对n个关键码构成的序列采用直接插入排序法进行升序排序的过程是:在插入第i个关键码Ki时,其前面的i-1个关键码己排好序,因此令Ki与Ki-1、Ki-2、...,依次比较,最多到K1为止,找到插入位置并移动相关元素后将Ki插入有序子序 列的适当位置,完成本趟(即第i-1趟)排序。以下关于直接插入排序的叙述中,正确的是( )。

A. 若原关键码序列已经升序排序,则排序过程中关键码间的比较次数最少
B.若原关键码序列已经降序排序,则排序过程中关键码间的比较次数最少
C.第1趟完成后即可确定整个序列的最小关键码
D.第1趟完成后即可确定整个序列的最大关键码

答案:A
解析:

第8题:

有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。

① 给出适用于计数排序的顺序表定义;

② 编写实现计数排序的算法;

③ 对于有n个记录的表,关键字比较次数是多少?

④ 与简单选择排序相比较,这种方法是否更好?为什么?


参考答案:
  [算法描述]
  ① typedef struct
  {int key;
  datatype info
  }RecType
  ② void CountSort(RecType a[],b[],int n)
  //计数排序算法,将a中记录排序放入b中
  {for(i=0;i  {for(j=0,cnt=0;j  if(a[j].key  b[cnt]=a[i];
  }
  }//Count_Sort
  ③ 对于有n个记录的表,关键码比较n2次。
  ④ 简单选择排序算法比本算法好。简单选择排序比较次数是n(n-1)/2,且只用一个交换记录的空间;而这种方法比较次数是n2,且需要另一数组空间。
  [算法讨论]因题目要求“针对表中的每个记录,扫描待排序的表一趟”,所以比较次数是n2次。若限制“对任意两个记录之间应该只进行一次比较”,则可把以上算法中的比较语句改为:
  for(i=0;i  for(i=0;i  for(j=i+1;j  if(a[i].key

第9题:

每趟排序从未排序的子序列中依次取出元素与已经排好序的序列中元素进行比较,然后将其放在已经排好序的序列的合适位置。这种排序法称为()排序法。


正确答案:简单选择

第10题:

中序遍历一棵二叉排序树的结点就可得到排好序的结点序列。


正确答案:正确

更多相关问题