选择排序的思想:
假设现在有一堆数据,需要排序。首先选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和第一个数据交换位置,这样第一个位置的数据肯定是最大或者最小的。再对剩下的数据,重复上面的操作,在剩下的数据里面,选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和剩下的数据里面的第一个数据交换位置,这样前2个位置就是最大的或者最小的、次最大的或者次最小的。照此循环,数据就排好序了。
参考代码:
1 //arr:待排序的数组,length:待排序数组的长度 2 void SelectSort(int arr[],int length) 3 { 4 int i,j,tmp; 5 for( i = 0; i < length-1; ++i) 6 { 7 for(j = i+1; j < length; ++j) 8 { 9 // >:升序 <:降序 10 if(arr[i] > arr[j]) 11 { 12 //交换数组中2个元素 13 tmp = arr[j]; 14 arr[j] = arr[i]; 15 arr[i] = tmp; 16 } 17 } 18 } 19 }
时间: 2024-10-29 10:46:01