代码如下:
#include <stdio.h>
void swap(int *a,int *b){
int c=*a;
*a=*b;
*b=c;
}
void SelSort(int arr[],int size){
for(int k=0;k<size-1;k++){ //外层循环用于推进乱的去排, k 表示已排好的下标
int min=k;
for(int i=k;i<size;i++){ //内层循环用于确定乱的最小值下标
if(arr[i]<arr[min]) //只有满足这个条件i才会赋值给min
min=i;
swap(&arr[k],&arr[min]);//这里可以再加个判断优化,如果k!=min 执行swap函数
}
}
}
int main(){
int arr[5]={5,3,6,8,3};
int size=sizeof(arr)/sizeof(arr[0]);
SelSort(arr,size);
for(int i=0;i<5;i++)
printf("%d ",arr[i]);
return 0;
}