ソートアルゴリズム(3)
ノームソートを紹介します。
ノームソートは隣接する2つの要素を比較し、順序が正しければ次の要素へ、順序が逆であれば2つを入れ替えて前の要素へ移動する。という単純なアルゴリズムです。
sort/GnomeSort.java
package sort;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class GnomeSort {
public static void swap(List list, int index1, int index2) {
E t = list.get(index1); list.set(index1, list.get(index2)); list.set(index2, t);
}
public static > void sort(List list) {
int i = 0;
while (i < (list.size() - 1)) {
if (list.get(i).compareTo(list.get(i + 1)) > 0) {
swap(list, i, i + 1);
if (i != 0) {
i--;
}
} else {
i++;
}
}
}
}

