选择排序法是一种比较简单的排序法:
比如:
对5,6,8,2,10,9,44,55进行排序
第一步:找到数组中最小的数,与第一个数交换,
2,6,8,5,10,9,44,55
第二步:除过第一个数,在剩下的数中找出最小值,与第二个数交换位置
2,5,8,6,10,9,44,55
第三步:除过前两个数,在剩下的数中找到最小的值与第三个数交换位置
2,5,6,8,10,9,44,55
................
第n-1(n代表该数组中数字的个数)步:结果为:
2,5,6,8,9,10,44,55
那么选择排序法的代码为:
# include<stdio.h>
void Selectsore(int *arr,int len)
{
int minlndex;//下标
int tmp;
int i;
for(i=0;i<len-1;i++)
{
minlndex=i;
for(int j=i+1;j<len;j++)
{
if(arr[minlndex]>arr[j])
{
minlndex=j;
}
}
tmp=arr[i];
arr[i]=arr[minlndex];
arr[minlndex]=tmp;
}
}
void show(int *arr,int len)
{
for(int i=0;i<len;i++)
{
printf("%d\n",arr[i]);
}
printf("\n");
}
int main()
{
int arr[]={1,2,5,3,9,44,66,52,92,22};
Selectsore(arr,sizeof(arr)/sizeof(arr[0]));
show(arr,sizeof(arr)/sizeof(arr[0]));
return 0;
}
编译结果: