数据结构与算法中,在排序中,对于关键字相等的记录,排序前后相对位置不变。这时称排序为()。

题目
单选题
数据结构与算法中,在排序中,对于关键字相等的记录,排序前后相对位置不变。这时称排序为()。
A

稳定排序

B

不稳定排序

C

不确定是稳定排序还是不稳定排序

D

基数排序

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

第1题:

以下关于排序算法的叙述中,正确的是( )。

A.冒泡排序法中,元素的交换次数与元素的比较次数一定相同

B.冒泡排序法中,元素的交换次数不少于元素的比较次数

C.简单选择排序中,关键字相同的两个记录在排序前后的相对位置一定不变

D.简单选择排序中,关键字相同的两个记录在排序前后的相对位置可能交换


正确答案:D
解析:冒泡排序法的基本思路是:将相邻位置上的关键字进行比较,如果为逆序,则交换,否则继续往下比较,直到序列已经排好。所以,在这个过程中,元素问的比较次数应大于或等于交换次数。简单选择排序算法的思路是:第1趟在n个记录中选择最小的记录,将它与第1个元素交换,第2趟在n-1个基类中选取最小记录,将它与第2个元素交换,依此类推,直到序列的第n个元素为止。在这个过程中,关键字相同的两个记录在排序前后的相对位置可能发生变化。例如,序列为(80,80,40,30)时,选择排序法需要将第1个元素80和最后一个元素30交换,这样就使得两个80的相对位置改变了。

第2题:

排序算法的稳定性是指( )。

A.经过排序后,能使关键字相同的元素保持原顺序中的相对位置不变
B.经过排序后,能使关键字相同的元素保持原顺序中的相对位置改变
C.排序算法的性能与被排序元素个数关系不大
D.排序算法的性能与被排序元素个数关系密切

答案:A
解析:
排序算法的稳定性是指排序后关键字相同的元素保持原顺序中的相对位置不变。

第3题:

有一种简单的排序算法,叫做计数排序。这种排序算法对一个待排序的表进行排序,并将排序结果存放到另一个新的表中。必须注意的是,表中所有待排序的关键字互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键字比该记录的关键字小。假设针对某一个记录,统计出的计数值为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

第4题:

排序算法是稳定的意思是关键码相同的记录排序前后相对位置不发生改变,下列哪种排序算法是不稳定的()

  • A、冒泡排序
  • B、插入排序
  • C、归并排序
  • D、快速排序

正确答案:D

第5题:

数据结构与算法里,下列选项中关于稳定排序说法正确的是()。

  • A、稳定排序是指对于关键字相等的记录,排序前后相对位置不变
  • B、稳定排序是指对于关键字相等的记录,排序前后相对位置可以变化
  • C、稳定排序是指排序是指将记录变成无序的

正确答案:A

第6题:

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

A.3

B.4

C.5

D.6


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

第7题:

数据结构与算法里,稳定排序是指排序前后不同关键字的记录相对位置不变。


正确答案:错误

第8题:

若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。(56)排序是稳定的。

A.归并

B.快速

C.希尔

D.堆


正确答案:A
解析:排序是将无序的记录序列调整为有序记录序列的一种操作。直接插入排序:插入排序的准则是,在有序序列中插入新的记录以达到扩大有序区的长度的目的。起泡排序:起泡排序是交换类排序方法中的一种简单排序方法。其基本思想为依次比较相邻两个记录的关键字,若和所期望的相反,则互换这两个记录。希尔排序:希尔排序又称“缩小增量排序”,它的基本思想是,先对待排序列进行“宏观调整”,待序列中的记录“基本有序”时再进行直接插入排序。快速排序:起泡排序是通过一趟“起泡”选定关键字最大的记录,所有剩余关键字均小于它的记录继续进行排序。快速排序则是通过一趟排序选定一个关键字介于“中间”的记录,从而使剩余记录可以分成两个子序列分别继续排序,通常称该记录为“轴枢”。堆排序:利用堆的特性进行的排序方法即为“堆排序”。“堆排序”是一种选择类的排序方法。归并排序:归并排序的基本操作是将两个或两个以上的记录有序序列归并为一个有序序列。最简单的情况是,只含一个记录的序列显然是个有序序列,经过“逐趟归并”使整个序列中的有序子序列的长度逐趟增大,直至整个记录序列为有序序列为止。2-路归并排序则是归并排序中的一种最简单的情况,它的基本操作是将两个相邻的有序子序列“归并”为一个有序序列。基数排序:利用多关键字排序的思想。快速排序、堆排序或归并排序平均时间复杂度较低,为O(nlogn)。直接插入排序、起泡排序、归并排序和基数排序是稳定的。

第9题:

若待排序的文件中存在多个关键字相同的记录,经过某种排序方法排序后,具有相同关键字的记录间的相对位置保持不变,则这种排序方法是()的排序方法。


正确答案:稳定

第10题:

数据结构与算法中,在所有的排序方法中,关键字比较的次数与记录的初始排列次序无关的是()。

  • A、希尔排序
  • B、冒泡排序
  • C、直接插入排序
  • D、简单选择排序

正确答案:D

更多相关问题