插入排序算法(Insert Sort)

本文介绍了插入排序算法的思想和图解,并利用Java语言实现了该算法

插入排序(Insert Sort)算法的基本思想是:

图解

代码实现

package io.github.kuyer.sort;

public class InsertSort {

	public static void main(String[] args) {
		int[] arr = {45, 8, 147, 3, 74, 21, 233, 71};
		System.out.println("Before Sort:");
		for(int i=0; i<arr.length; i++) {
			System.out.printf("%d ", arr[i]);
		}
		System.out.println();
		insertSort(arr);
		System.out.println("After Sort:");
		for(int i=0; i<arr.length; i++) {
			System.out.printf("%d ", arr[i]);
		}
	}

	private static void insertSort(int[] arr) {
		int len = arr.length;
		for(int i=1; i<len; i++) {
			int index = -1;
			int temp = 0;
			for(int j=0; j<i; j++) {
				if(arr[j] > arr[i]) {
					index = j;
					temp = arr[i];
					break;
				}
			}
			if(index >= 0) {
				for(int k=i; k>index; k--) {
					arr[k] = arr[k-1];
				}
				arr[index] = temp;
			}
		}
	}

}

复杂度

稳定性