C语言设一组初始记录关键字序列(7,2,8, 6,3,10, 5),以第一个关键字7为基准进行一趟快速排序的结果为

设一组初始记录关键字序列(7,2,8, 6,3,10, 5),以第一个关键字7为基准进行一趟快速排序的结果为( )。
A. 2,5,6,3,7, 8, 10 B. 5,2,3,6,7, 10, 8
C. 2,3,5,6, 7, 8,10 D. 5,2,6,3, 7, 8, 10

答案是B。

分析:
开始时,枢纽是7,low=[0],high=[6]。

第一次赋值后是5,2,8,6,3,10,5,枢纽是7,low=[0],high=[6]。

第二次赋值后是5,2,8,6,3,10,8,枢纽是7,low=[2],high=[6]。

第三次赋值后是5,2,3,6,3,10,8,枢纽是7,low=[2],high=[4]。

最后是5,2,3,6,3,10,8,low=[4],high=[4],把枢纽7赋给[4]后是5,2,3,6,7,10,8。

所以答案是B。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-02-11
"main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++)
scanf ("%d,",&a[i]);
for(j=0;j<=9;j++)
{ for (i=0;i<10-j;i++)
if (a[i]>a[i+1])
{ temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;}
}
for(i=1;i<11;i++)
printf("%5d,",a[i] );
printf("\n");
}