基本アルゴリズムきそーじゃ:ソートの挿入
1889 ワード
今日からアルゴリズムを勉強して、自分の理解できる方法で挿入ソートアルゴリズムを書いて後記します.
1.前のdata[n-1]のデータが並ぶとする.並べ替えdata[n]の数になると、後で適切な位置に挿入するためにdata[n]を一時変数tmpに保存する.
2.data[n-1]がdata[n]より大きい場合、data[n-1]は1ユニット後方に移動する.さらに、data[n-2]がtmp(ソートするこの値)より小さい場合には、data[n-1]が移動する前の位置を挿入する.
3.data[n-2]がtmpよりも大きい場合、data[n-2]は、tmp(ソートするこの値)よりも小さい場合に、data[n-2]が移動する前の位置を挿入するように、1つのセルを後方に移動する.
package SortInsert;
public class SortInsert {
public static void main(String args[]) {
int sortData[] = { 4, 1, 2, 3, 8, 6, 5, 9, 11 };
sort(sortData);
System.out.println(sortData);
}
static int i, j, tmp;
public static void sort(int data[]) {
for (i = 1; i < data.length; ++i) {
tmp = data[i];
j = i - 1;
while (true) {
if (j < 0 || data[j] < tmp)
break;
data[j + 1] = data[j]; //
j--;
}
data[j + 1] = tmp;
}
}
}
1.前のdata[n-1]のデータが並ぶとする.並べ替えdata[n]の数になると、後で適切な位置に挿入するためにdata[n]を一時変数tmpに保存する.
2.data[n-1]がdata[n]より大きい場合、data[n-1]は1ユニット後方に移動する.さらに、data[n-2]がtmp(ソートするこの値)より小さい場合には、data[n-1]が移動する前の位置を挿入する.
3.data[n-2]がtmpよりも大きい場合、data[n-2]は、tmp(ソートするこの値)よりも小さい場合に、data[n-2]が移動する前の位置を挿入するように、1つのセルを後方に移動する.