思路:每一趟从后面找出关键字最小的元素,然后跟该趟对应的关键字进行交换
工具人:min
代码实现:
1.排序方法
void SelectSort(int a[],int n){
int min;
for(int i=0;i<n-1;i++){
min=i;
for(int j=i+1;j<n;j++){
if(a[min]>a[j]) min=j;
}
if(min!=i){
int temp=a[i];
a[i]=a[min];
a[min]=temp;
}
print(a,n,i);
}
}
2.输出方法
void print(int a[],int n,int i){
printf("第%d趟排序:",i);
for(int k=0;k<n;k++){
printf("%d\t",a[k]);
}
printf("\n");
}
3.主函数
int main(){
int a[]={53,17,78,9,45,65,87,32};
SelectSort(a,8);
return 0;
}