#include <stdio.h>
//找出数组的最大值
int max(int a[],int len)
{
int maxid = 0;
for(int i = 1; i < len; i++){
if( a[i] > a[maxid] ){
maxid = i;
}
}
return maxid;
}
void select_sort(int a[],int len)
{
int maxid ;
for(int i = len -1 ; i > 0; i--){
//int maxid = max(a,i+1);
//找出待排序数组的最大值下标
maxid = 0;
for(int j = 1; j < i + 1; j++){
if( a[j] > a[maxid] ){
maxid = j;
}
}
//最大值和待排序数组中的最后一个值交换
int t = a[maxid];
a[maxid] = a[i];
a[i] = t;
}
}
int main()
{
int a[] = {1,23,222,3,2,65,22,11,2};
int len = sizeof(a) / sizeof(a[0]); //数组长度
select_sort(a,len);
//打印排序后的数组
for(int j = 0; j < len; j++){
printf("%d ",a[j]);
}
return 0;
}
C实现选择排序
最新推荐文章于 2024-07-30 20:13:07 发布