选择排序
1.选择排序算法的原理
a) 第一轮,设第一个位置为起始位置,将每一次将无序序列中最小的元素移动到最起始的位置
b) 第二轮,设置第二个位置为起始位置,将第二个后面的无序序列中最小的元素移动到第二轮的起始位置;重复以上操作,直到排序完成
2.实现代码
#include <stdio.h>
int select_sort(int *a,int n)
{
int i,j,temp,min;
for(i=0;i<n;i++){
min=i; //先假设第i个位置为这一轮的最小值a[min]
for(j=i+1;j<n;j++){
//从第i+1个位置开始的每个值与a[min]比大小,找到无序区最小的那个数,并将序号记录下来即a[min],然后交换a[i]与a[min].
if(a[min]>a[j]){
min=j;
}
}
if(min!=i){
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
}
return 0;
}
int main()
{
int i;
int a[9]={14,2,6,7,1,3,5,1,7};
select_sort(a,9);
for(i=0;i<9;i++){
printf("%d\n",a[i]);
}
return 0;
}
3.时间复杂度(O(N^2))
转载于:https://blog.51cto.com/jachy/1705142