用某排序方法对一元素序列进行非递减排序时,若该方法可保证在排序前后排序码相同者相对位置不变,则称该排序方法是稳定。简单选择排序法排序方法是不稳定,(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;i<n-1;i++){
k=i;//data[k]表示当前找到最小数
for(j=i+1;j<n;j++){if(data[j]<data[k])k=j;}
if(k!=i){temp=data[i];data[i]=data[k];data[k]=temp;}
}
}
根据以上算法,A选项数序列经过4次排序,i=4,使用i<n-1(n-1值为4)不成立而退出整个排序算法。从最终结果看,21*排序之前位于21之后,而排序之后则位于21之前,故A选项可说明简单选择排序是不稳定算法。同理B、C、D三个选项,排序结果中21*与21先后顺序与排序前一样,本题选择A选项。
你可能感兴趣的试题

-
- A.V(S2)和P(S4)
- B.P(S2)和V(S4)
- C.P(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案

-
- A.V(S1)P(S2)和V(S3)
- B.P(S1)V(S2)和V(S3)
- C.V(S1)V(S2)和V(S3)
- D.P(S1)P(S2)和V(S3)
- 查看答案

-
- A.P(S4)和V(S4)V(S5)
- B.V(S5)和P(S4)P(S5)
- C.V(S3)和V(S4)V(S5)
- D.P(S3)和P(S4)V(P5)
- 查看答案

-
- A.P(S3)和V(S4)V(S5)
- B.V(S3)和P(S4)P(S5)
- C.P(S3)和P(S4)P(S5)
- D.V(S3)和V(S4)V(S5)
- 查看答案

-
- A.P(S2)和P(S4)
- B.P(S2)和V(S4)
- C.V(S2)和P(S4)
- D.V(S2)和V(S4)
- 查看答案