//每次从数组取出一个最大的数,然后放到最右边 ,位置从length -1开始向左放。完成排序
#include<stdio.h>
int search(int a[] ,int length) //函数定义
{
int max=0; //令max=a[0]
for(int i=1;i<length;i++){ // i=a[1],i<10,i++
if (a[i]>a[max]) //
max=i; //就让a[i]=max;
}
return max; //循环完,返回max
}
int main( )
{
int a[]={15,2,96,72,6,19,23,65,31,80};
int length=(sizeof(a)/sizeof(a[0])); //求出数组长度
for (int i=length-1;i>0;i--) //让i=a[9]那里,每次--
{
int max=search(a,i+1); //调用函数求出最大值
int t=a[max]; // //把每次的最大数送到t
a[max]=a[i]; //把a[i]位置上的数送到a[max]
a[i]=t; //每次求得最大数送进a[i]里完成位置互换
}
for (int i=0;i<length;i++)
printf("%d\t",a[i]);
return 0;
}
函数实现选择排序
最新推荐文章于 2021-12-13 21:51:40 发布