对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法

题目
单选题
对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到__(1)__,快速排序(选第一个记录为基准元素)得到__(2)__,基数(基数为10)排序得到__(3)__,二路归并排序得到__(4)__,堆排序得到__(5)__。空白(2)处应选择()
A

10,6,18,8,4,2,12,20,16,30,28

B

6,2,10,4,8,12,28,30,20,16,18

C

2,4,6,8,10,12,16,18,20,28,30

D

6,10,8,28,20,18,2,4,12,30,16

参考答案和解析
正确答案: A
解析: 暂无解析
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

借助于快速排序的算法思想,在一组无序的记录中查找给定关键字值等于key的记录。设此组记录存放于数组r[l..n]中。若查找成功,则输出该记录在r数组中的位置及其值,否则显示“not find”信息。请简要说明算法思想并编写算法。


参考答案:把待查记录看作枢轴,先由后向前依次比较,若小于枢轴,则从前向后,直到查找成功返回其位置或失败返回0为止。
  [算法描述]
  int index (RecType R[],int l,h,datatype key)
  {int i=l,j=h;
  while (i  { while (i<=j && R[j].key>key) j--;
  if (R[j].key==key) return j;
  while (i<=j && R[i].key  if (R[i].key==key) return i;
  }
  cout<<“Not find”; return 0;
  }//index

第2题:

某内排序方法的稳定性是指()。

A、该排序算法不允许有相同的关键字记录

B、该排序算法允许有相同的关键字记录

C、平均时间为0(nlogn)的排序方法

D、以上都不对


参考答案:D

第3题:

对初始状态为递增序列的数组按递增顺序排序,最省时间的是插入排序算法,最费时间的算法是()

A.堆排序

B.快速排序

C.插入排序

D.归并排序


正确答案:B

第4题:

以关键字比较为基础的排序算法在最坏情况下的计算时间下界为O(nlogn)。下面的排序算法中,最坏情况下计算时间可以达到O(nlogn)的是(59);该算法采用的设计方法是(60)。

A.归并排序

B.插入排序

C.选择排序

D.冒泡排序


正确答案:A
解析:直接插入排序、简单选择排序和冒泡排序最坏情况下计算时间可以达到O(n2),而归并排序的时间最坏情况下可以达到O(nlogn)。而归并排序也是分治策略的一个典型应用。

第5题:

写出两个排序算法,问哪个好?(威盛)


正确答案:
               

第6题:

对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到(1),快速排序(选第一个记录为基准元素)得到(2),基数(基数为10)排序得到(3),二路归并排序得到(4),堆排序得到(5) 。

A.2,4,6,8,10,12,16,18,20,28,30

B.6,2,10,4,8,12,28,30,20,16,18

C.12,2,10,20,6,18,4,16,30,8,28

D.30,10,20,12,2,4,16,6,8,28,18


正确答案:C

第7题:

排序算法是按照某个或某些关键字的(),递增或递减的排列起来的操作。

A、类别

B、属性

C、名称

D、大小


参考答案:D

第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题:

若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。下列排序算法中,有(14)种排序算法是稳定的:归并排序、快速排序、希尔排序、堆排序、基数排序、直接插入排序、冒泡排序、直接选择排序。

A.3

B.4

C.5

D.6


正确答案:B
解析:此题考察考生对稳定排序概念的理解。稳定排序算法是指在排序过程中两个排序关键字相同的元素,在排序的过程中位置不发生变化。例如对数列:62,42,12,36,4,12,67进行排序时,第一个12在排序完毕以后要排在第二个12的前面,这就是稳定的排序。有些人可能会发出疑问:既然都是12,为什么一定要保证它的顺序呢?举一个简单的例子:如果组织一次有奖答题活动,选手在电脑上答完题以后,就直接提交数据,最后按答题得分奖励前:100名参赛选手,这样会出现一个问题,即如果同时有10个人并列第100名,而我们只能给一个人发奖,到底给谁发呢?最合理的判断标准是给先提交答案的人发奖。这样稳定排序就可以用上了。以上的这些排序算法中,归并排序、基数排序、直接插入排序和冒泡排序是稳定的,其它的都不稳定。

第10题:

5 写出下列算法的时间复杂度。

(1)冒泡排序;

(2)选择排序;

(3)插入排序;

(4)快速排序;

(5)堆排序;

(6)归并排序;


正确答案:
 

更多相关问题