插入排序

package demo;

/**
 * 插入排序;
 * 
 * @author Lynn
 *
 */
public class InsertionSort {
	public static void main(String[] args) {
		int[] arr = {10,7,2,4,8,6,1,9};
		System.out.print("排序前:");
		printArr(arr);
		insertionSort(arr);
		System.out.print("排序后:");
		printArr(arr);
	}

	private static void insertionSort(int[] arr) {

		for(int i=1;i<arr.length;i++) {
			int temp = arr[i];//i为待插入;
			int j =0;
			for(j = i-1;j>=0;j--) { //从后往前;
				if(arr[j]>temp) {
					arr[j+1]=arr[j];//后移;
				}else {
					
					break;
				}
			}	
			arr[j+1]=temp;
			
		}
	}
	/**
	 * 打印数组;
	 * @param arr
	 */
	private static void printArr(int[] arr) {
		if(arr==null) {
			return ;
		}
		for(int i =0;i<arr.length;i++) {
			if(i!=arr.length-1) {
				System.out.print(arr[i]+" ");
			}else {
				System.out.print(arr[i]);
			}
		}
		System.out.println();
	}
}

多思考,多尝试。
原文地址:https://www.cnblogs.com/LynnMin/p/9529526.html