插入排序--代碼詳解

public class InsertionSort {數組

/**
 * @param args插入排序
 *            1:相似於玩鬥地主對手中的牌進行排序,數組假設爲還未摸到的牌,剛開始左手爲空
 *             2:每摸一次牌交換摸到的牌與手中的牌進行比較,找到一個點插入
                  3 :進行下次摸牌比較,以後重複2
 */
public static void main(String[] args) {
	int sort[] = { 12, 34, 6, 7, 8, 89 };
	int key = 0;// 剛開始未摸牌
	int i = 0;// 左手中須要與其比較的牌索引
	for (int j = 2; j < sort.length; j++) {
		key = sort[j];// 給摸到的牌賦值

		i = j - 1;//手中的牌序列

		while (i >= 0 && sort[i] > key) {// 定義比較規範,數組下標從零開始的,左手中須要與其比較的牌
			sort[i + 1] = sort[i];// 每次循環移動一個位置
			i = i - 1;// 下標減一,從右到左
		}
		sort[i + 1] = key;// 元素替換

	}

	for (i = 0; i < sort.length; i++) {
		System.out.println(sort[i]);
	}
}

} //時間複雜度 c1n^2 c1表明常數,n表明須要排序的數的個數code

相關文章
相關標籤/搜索