Java 實現插入排序

首先插入排序屬於穩定排序.

然後直接上代碼:

/**
 * 插入排序
 * 穩定排序.
 * @author
 * @date 2018年3月6日
 */
public class InsertionSortTest {
	
	public static void main(String[] args) {
		
		//原始數組
		int[] arr = {6,3,7,2,3,1,8};
		int len = arr.length,
			temp = 0;
		
		//i循環: 從1 到 len.
		for (int i = 1; i < len; i++) {
			//如果arr[i]<arr[i-1],j循環(從頭開始到i前面),目的是爲了找到插入位置
			if (arr[i]<arr[i-1]) {
				for (int j = 0; j < i; j++) {
					if(arr[i] < arr[j]) {// 找到了插入位置
						// 把i位置先騰空
						temp = arr[i];
						//K循環,把j到i之間的數據向後移.
						// 從後面一個一個移
						for (int k = i-1; k >= j; k--) {
							arr[k+1] = arr[k]; // 數據向後移
						}
						// 把[i]插入到找到的位置
						arr[j] = temp;
						break;
					}
				}
			}
		}
		
		// 驗證結果是否正確.
		for (int i = 0; i < len; i++) {
			System.out.print(arr[i] + ", ");
		}
	}
	
}

上面代碼是3個for循環實現的.

有興趣的朋友可以研究一下2個for循環實現. PS,把j循環和k循環合併.

--end.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章