选择排序算法扫描一个数组并寻找数组中最小的元素,当找到最小的元素师,将它和数组中的第一个元素进行交换。接下来,从数组的第二个元素开始,这一过程在子数组上重复。每一轮的结果是有一个元素被放在了适当的位置上。这一排序需要的处理能力类似于冒泡排序。
void selectSort(int arr[],int low,int high) {//low 是数组的开始下标 high是结束下标 int i; int min = low; if(low < high){ for(i = low + 1;i <= high;i++){ if(arr[i] < arr[min]){ min = i; } } if(min != low){//如果最小值是第一个就不互换 swap(arr,low,min); } printArr(arr,high); selectSort(arr,low+1,high); } } void printArr(int arr[],int length) { int i; for(i = 0; i <= length; i++){ printf("%d ",arr[i]); } printf(" "); } void swap(int arr[], int first, int min) { int temp; temp = arr[first]; arr[first] = arr[min]; arr[min] = temp; }