insertionSort()挿入ソート


挿入ソートアルゴリズムは、比較と挿入によってソートを実現します.ソートプロセスは次のとおりです.
1.まず、配列の最初の2つのデータを小さいものから大きいものに並べ替える.
2.次に、3番目のデータを、順序付けされた最初の2つのデータと比較し、3番目のデータを適切な位置に挿入する.
3.次に、4番目のデータを、順序付けされた最初の3つのデータに挿入します.
4.上記の手順を繰り返し、最後のデータを適切な位置に挿入することを知る.
package suanfa;

public class InsertQort {
	public static void main(String[] args) {
		int LEN =30;
		int[] arr = new int[LEN];
		for (int i = 0; i < LEN; i++) {
			arr[i] = (int) ((Math.random()) * 11);

		}
		insertsort(arr);
		for (int i = 0; i < LEN; i++) {
			System.out.print(arr[i] + "-");
		}
	}

	static void insertsort(int arr[]) {
		for (int i = 0; i < arr.length; i++) {
			int j = i;
			int t = arr[i];
			while (j > 0 && t < arr[j - 1]) {
				arr[j] = arr[j - 1];
				j--;
			}
			arr[j] = t;
		}
	}
}
プログラムのアルゴリズムもこのように記述することができる.
1.配列の最初のデータ位置は変わらない.
2.配列の2番目のデータから、撮ったデータに順番に挿入します.ルールは、自分より小さいデータに出会うまで、キューの最後から順番に前に比較します.同時に自分が1位前に移動するたびに、後ろのデータは1位後ろに移動します.
3.以上を繰り返す