完整代碼:
#include<stdio.h>//交換函數,交換兩個數
void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;
}//選擇排序,從小到大
//參數:arr[]表示待排序數組,len表示該數組長度
void select_sort(int arr[],int len){//外層循環遍歷數組中所有的數,最后一個數可以不用遍歷,因為最后一個數肯定就是最大的數for (int i = 0; i < len-1; i++){//記錄最小數的位置,初始時為iint min=i;//內層循環遍歷arr[i]之后的所有數,找出其中最小的那個數for (int j = i+1; j < len; j++){//如果這個數比最小數還要小,那么它就變成最小的數if (arr[j]<arr[min]){min=j;}}//如果最小數就是i本身,就不用交換了,不是的話就交換兩個數if (i!=min){swap(arr+i,arr+min);}}
}
int main(){int arr[10]={3,2,1,7,5,9,8,4,10,6};select_sort(arr,10);for (int i = 0; i < 10; i++){printf("%d ",arr[i]);}return 0;
}
運行截圖:
