问答题 按由大到小的顺序对一含有N个元素的数组A[N]进行排序,利用如下改进的简单选择排序方法:第一次选出最大者存入A[1],第二次选出最小者存入A[N],第三次选出次大者存入A[2],第四次选出次小者存入A[N-1],如此大小交替地选择,直到排序完毕。【东华大学2001十(10分)】
【正确答案】正确答案:改进的选择排序,选大和选小交替进行,按题意,元素下标从1开始。 for(i=1;i(=n/2;i++) {k=i; Ilk记最大元素下标 for(j=i+1;j<=n—i+1;j++) if(A[j]>A[k])k=j; //选第i个最大元素 if(k!=i)A[i]<一一>A[k]; //选出第i个最大元素 k=n—i; //k记最小元素下标 for(j=n—i ; j<=i;j一一) if(A[j]cA[k])k=j; //选第i个最小元素 if(k!=i)A[i]<一一>A[k]; //选出第i个最小元素 }//高层for
【答案解析】