Algorithms/Sorting/Selection Sort

Last-modified: 2008-05-23 (金) 10:55:53

Selection Sort

選択ソート

Outline

選択ソートはある場所に入れるべき値を選択していくソート法である.
挿入ソートは値を基準に場所を選ぶが、選択ソートは場所を基準に値を選ぶ.
選択ソートはデータがどんな並びでも、&mimetex( \sum_{i=0}^{n-1} i);回の比較が必要になる.

Program

サイズnの配列dataに対して選択ソートを行う関数.

void selection_sort(int data[], int n) {
  int min;

  for(int i = 0 ; i < n - 1 ; i++) {
    min = i;

    for(int j = i + 1 ; j < n ; j++) {
      if(data[j] < data[min]) {
        min = j;
      }
    }

    swap(data[i], data[min]);
  }
}

Consideration

#mimetex( \Theta(n^2) )