选择排序

选择排序是一种简单直观的排序算法,其核心思想是:遍历数组,从未排序的序列中找到最小元素,将其放到已排序序列的末尾。

时间复杂度:O(n^2)

稳定性 :不稳定

   1: /*
   2:  * @brief    selection sort
   3:  */
   4: void
   5: selection_sort(int a[], int n)
   6: {
   7:     int i, j, min, tmp;
   8:     
   9:     for (i = 0; i < n - 1; ++i) {
  10:         min = i;
  11:         for (j = i+1; j < n; ++j) {
  12:             if (a[j] < a[min]) {
  13:                 min = j;
  14:             }
  15:         }
  16:         if (min != i) {
  17:             tmp = a[min];
  18:             a[min] = a[i];
  19:             a[i] = tmp;    
  20:         }                
  21:     }
  22: }
posted @ 2012-05-30 20:44  Newerth  阅读(277)  评论(0编辑  收藏  举报