参考:《C语言进阶重点、难点与疑点解析》
1.推导过程
第一轮操作:
第二轮操作:
第三轮操作:
第四轮操作:
2.代码实现
#include<stdlib.h>
#include<stdio.h>
void choose(int c[],int b)
{
int base;
for(int i=0;i<b;i++)
{
base=i;
for(j=i+1;j<n;j++)
{
if(c[j]>c[j+1])
base=j;//最大值的序号给base
}
if(base!=i)
{
int t;
t=c[i];
c[i]=c[base];
c[base]=t;
}
}
}
int main()
{
//随意写个降序排列吧
int a[]={10,14,10,15,12};
choose(a,5);
for(int i=0;i<5;i++)
printf("%d",a[i]);
}
3.时间复杂度
N:需要排序的个数