直接插入排序java描述

chengmaoning發表於2013-03-14

插入排序演算法是一個對少量元素進行排序的有效方法。時間複雜度O(n^2),空間複雜度比較好,為O(1)。

演算法描述:

    1. 第一個元素認為已經是排好的。
    2. 取出下一個元素,在已經排序的元素中從後向前掃描。
    3. 如果該元素(已排序)大於新元素,將該元素移到下一位置。
    4. 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置。
    5. 將新元素插入到下一位置中。
    6. 重複步驟2.

插入排序跟我們打撲克牌時,手牌的排序方式是一樣的,當我們拿到新牌時,會從手中的最後一張牌開始向前逐一與新牌比較,

如果手牌大於新牌,則位置互換,依次下去。請認真體會。

 

 

 

	/**
	 *插入排序演算法實現,從小到大
	 * @param nums
	 */
	public void sort() {
		for (int j = 1; j < nums.length; j++) {
			int key = nums[j];
			int i = j - 1;
			while (i >= 0 && nums[i] > key) {
				nums[i + 1] = nums[i];
				nums[i] = key;
				i -= 1;
			}
		}
	}


相關文章