选择排序
1. 定义 选择排序(升序)想法: 两重循环,第一个循环中,每一次循环将当前元素标记为最小值,通过第二个循环遍历未排序的剩余元素,如果有小于当前最小值,则进行交换。 即每一交换都能将剩余的最小值排到前排相应位置,循环n-1次排好。 2. c代码
#include<stdio.h>
void xuanze(int *,int);
int main(){
int a[100];
int len,i;
scanf("%d",&len);
for(i=0;i<len;i++)
scanf("%d",&a[i]);
xuanze(a,len);
return 0;
}
void xuanze(int *a,int len){
int i,j,temp;
for(i=0;i<len-1;i++){
int min=i;
for(j=i+1;j<len;j++){
if(a[j]<a[min]){
temp=a[j];
a[j]=a[i];
a[i]=temp;
min=j;
}
}
}
for(i=0;i<len;i++)
printf("%d ",a[i]);
printf("\n");
}
输入 6个数 6 1 2 4 3 5 结果:1 2 3 4 5 6
3. 优化
|