更多“若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。(56)排序是稳定的。A.归并B ”相关问题
  • 第1题:

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

    A.3

    B.4

    C.5

    D.6


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

  • 第2题:

    ● 如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。 (41) 是稳定的排序方法,因为这种方法在比较相邻元素时,值相同的元素并不进行交换。

    (41)

    A. 冒泡排序

    B. 希尔排序

    C. 快速排序

    D. 简单选择排序


    正确答案:A

  • 第3题:

    用某排序方法对一元素序列进行非递减排序时,若该方法可保证在排序前后排序码相同者的相对位置不变,则称该排序方法是稳定的。简单选择排序法排序方法是不稳定的,(61)可以说明这个性质。

    A.21 48 21*63 17
    B.17 21 21*48 63
    C.63 21 48 21*17
    D.21*17 48 63 21

    答案:A
    解析:
    本题考查数据结构基础知识。简单选择排序算法的思想是:首先在所有记录中选出码最小的记录,把它与第1个记录交换,然后在其余的记录内选出排序码最小的记录,与第2个记录交换…依次类推,直到所有记录排好序。直接选择排序的平均时间复杂度O(n2),是不稳定的排序。第一趟下来,第一个一定是最小的或者最大关键字。算法程序:
    /*将数组data中n个整数按非递减有序的方式进行排序*/
    void SelectSort(intdate[],intn)
    {
    inti,j,k,temp;
    for(i=0;ik=i;//data[k]表示当前找到的最小数
    for(j=i+1;jif(k!=i){temp=data[i];data[i]=data[k];data[k]=temp;}
    }
    }
    根据以上算法,A选项的数序列经过4次排序,i=4,使用i

  • 第4题:

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

    A.归并

    B.快速

    C.希尔

    D.堆


    正确答案:A
    解析:在快速排序、希尔排序和堆排序中,元素的移动不保证在相邻位置间进行,因此不能确保关键字相同的两个元素在排序前后的相对位置不变。在归并排序中,对于关键字相同的两个元素,排在前面的元素可确保先进入最终的有序序列,因此归并排序是稳定的。

  • 第5题:

    用某排序方法对一个关键码序列进行递增排序时,对于其中关键码相同的元素,若该方法可保证在排序前后这些元素的相对位置不变,则称该排序方法是稳定的。以下关于排序方法稳定性的叙述中,正确的是( )。

    A.冒泡排序和简单选择排序都是稳定的排序方法
    B.冒泡排序是稳定的排序方法,简单选择排序不是
    C.简单选择排序是稳定的排序方法,冒泡排序不是
    D.冒泡排序和简单选择排序都不是稳定的排序方法

    答案:B
    解析: