菜鸟一枚,
刚刚学习数据结构与算法,
为了加深理解,
所以与同学们分享学习过程。
今天学习的是,
选择排序!!!
选择排序:n-i次关键字 的比较,
从n-i+1个记录中选出最小的记录,
并和i(1<=i<=n)个记录交换。
那么让代码说话
#include <stdio.h>
void slectsort(int k[],int n)
{
int i,j,temp,min;
for(i=0;i < n-1;i++)
{
min = i; //设第一个为最小
for(j = i+1;j < n;j++) //若这个min的找到比他更小的,
{ //则更小的成为min,这min再与后面的比较,
if(k[j]<k[min]) //一轮后这个min为数组中最小,并与第一个交换,
//第二轮,设第二个为min,往后比较,同第一轮
{ //最终得出从大到小的数组
min = j;
}
if(min!=i)
{
temp = k[min];
k[min] = k[i];
k[i] = temp;
}
}
}
}
int main()
{
int i,a[10]={4,3,6,1,0,8,7,2,9,5};
slectsort(a,10);
printf("排序后结果为:");
for(i=0;i<10;i++)
{
printf("%d",a[i]);
}
return 0;
}
谢谢同学们的阅读~~