选择排序-最基本版本

选择排序的思想:
假设现在有一堆数据,需要排序。首先选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和第一个数据交换位置,这样第一个位置的数据肯定是最大或者最小的。再对剩下的数据,重复上面的操作,在剩下的数据里面,选择第一个数据和剩下的所有数据做比较,找到最大的或者最小的数据,和剩下的数据里面的第一个数据交换位置,这样前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 }

 

posted @ 2015-06-01 18:05  memorybuf  阅读(141)  评论(0编辑  收藏  举报