「アルゴリズム講座―選択ソート法」の編集履歴(バックアップ)一覧に戻る
選択ソート (selection sort) は、ソートのアルゴリズムの一つ。
配列された要素から、最大値やまたは最小値を探索し配列最後の要素と入れ替えをおこなうこと。
最悪計算時間がO(n^2)と遅いが、アルゴリズムが単純で実装が容易なため、しばしば用いられる。
―Wikipedia『選択ソート』
仕様 機能:渡されるアドレスを先頭とする配列変数を昇順に選択ソートする 引数:int a[]…ソートする配列変数の先頭アドレス int n …ソートする配列変数の要素数 返値:なし
void selection_sort(int a[],int n){ int temp,max,i,j; for(i=n-1;i>0;i--){ max=0; for(j=1;j<=i;j++){ if(a[max]<=a[j]) max=j; } temp=a[i]; a[i]=a[max]; a[max]=temp; } }
#include <stdio.h> #define N_DATA 10 int main(void) { int data[N_DATA],i; printf("%d個の整数を入力してください。\n",N_DATA); for(i=0;i<N_DATA;i++) scanf("%d", &data[i]); select_sort(data,N_DATA); for(i=0;i<N_DATA;i++) printf("%d ",data[i]); return 0; }