アフィリエイト広告を利用しています
最新記事
カテゴリアーカイブ

2019年11月06日

基本挿入法(挿入ソート)

挿入ソートは、ソートされている要素へ
ソートされていない要素から取り出した要素を挿入して比較し
ソートしていく方法です。
最初は、インデックス0をソート済みとして挿入・比較を行います。

public class Demo {
 public static void main(String[] args) {

  int[] num = { 5, 4, 6, 3, 7, 9 };
  sort(num);
  for(int s : num) {
   System.out.print(s + " ");
  }
 }

 public static void sort(int[] data) {
  for(int i = 1; i < data.length; i++) { //要素の取出し
   int tmp = data[i];
   int j = i;
   while(0 < j && tmp < data[j - 1]) { //挿入部分の探索
    data[j] = data[j - 1];
    j--;
   }
   data[j] = tmp;
  }
 }
}

========== 実行結果 ==========

3 4 5 6 7 9

==============================

forのiが1から始まっているのは
インデックス0をソート済みとしているからです。
また、ソート済みの部分が確定とは限りません。

「int j = i;」にすることでiとjが連動するようになります。
iがインクリメントされて2になれば、jも2といった感じで。
whileではなくてforにするなら
初期値のところを「for(int j = i; 0 < j; j--)」みたいな感じに。

地球の末路!?




検索