参考:《C语言进阶重点、难点与疑点解析》

1.推导过程

选择排序法_i++
第一轮操作:

选择排序法_其他_02
第二轮操作:
选择排序法_其他_03
第三轮操作:
选择排序法_i++_04
第四轮操作:
选择排序法_#include_05

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:需要排序的个数
选择排序法_时间复杂度_06