C语言选择排序法
基本思路:
在每一次的排序中选出最小(或最大)的数,将其放在数组最前端,然后在后面的数中重复此步骤,最终达到排序的目的.
算法描述:
将存于数组首位数与后面的数依次比较,将其中的较小的数放到数组放到数组首位
将除存于第二位的数视作首位,重复第一步的操作
以此类推
代码如下:
#include <stdio.h>
void swap(int *p,int*q){
int t;
t=*p;
*p=*q;
*q=t;
}
int main() {
int i,j,n;
int a[100];
printf("请输入数组元素的个数\n");
scanf("%d",&n);//输入数组元素的个数
getchar();
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++){
int min=i;
for(j=i+1;j<n;j++){
if(a[min]>a[j]){
min=j;
}
}
if(min!=i){
swap(&a[i],&a[min]);
}
}
for(i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
运行结果: