选择排序法原理:
方法一:常规计算
#include<stdio.h>
int main(){
int i,j,min,temp,a[11];
printf("enter data:\n");
for(i=1;i<=10;i++){
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("The orginal numbers:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for(i=1;i<=9;i++){
min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])
min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThe sorted numbers:\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
方法二:函数调用
#include <stdio.h>
void sort(int array[],int n){
int i,j,k,t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k])
k=j;
t=array[k];
array[k]=array[i];
array[i]=t;
}
}
int main(){
int a[10],i;
printf("请输入10个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(a,10);
printf("由大到小顺序为:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}