ノート:選択ソート

ページのコンテンツが他言語でサポートされていません。

選択ソートの実装例について[編集]

現在乗っている実装コードはこれです。116.91.77.231によって、2013年5月12日 (日) 01:57版で書き換えられています。

for I := 1 to N
   min = I ;
   for J := I+1 to N  
     if data[J] < data[min] then
       min := J
     end if
   end for
   swap (data[I], data[min])
 end for

私には何語なのか検討が付きませんが。そもそもなんでわざわざC言語のコードを別言語に書き換えたのかよくわかりませんが。そして謎のcodeタグ。

でその昔乗っていたコードはこれです

 for (i = 1; i < n; i++) {
     tmp = data[i];
     for (j = i; j > 0 && data[j-1] > tmp; j--) {
         data[j] = data[j-1];
     }
     data[j] = tmp;
 }

で、とある個人ブログで各国語版の実装例を調査し、提案された最適化案が

 // yaneurao's insertion sort
 for (int i = 1; i < MAX; i++) 
 {
   int tmp = t[i];
   if (t[i-1] > tmp)
   {
     int j = i;
     do {
       t[j] = t[j-1];
       --j;
     } while ( j > 0 && t[j-1] > tmp);
     t[j] = tmp;
   }
 }

です。

ここで疑問があります

  1. 一番早いのはどれか
  2. 出典があってWikipediaに掲載可能なのはどれか

私には判断がつかなかったので提起だけしておきます。--Yumetodo会話2015年6月23日 (火) 06:26 (UTC)[返信]