排序算法2:插入排序

一、定義

    插入排序的基本操作就是將一個數據插入到已經排好序的有序數據中,從而得到一個新的、個數加一的有序數據,算法適用於少量數據的排序,時間複雜度爲O(n^2),是穩定的排序方法。

二、思路

1.從第一個元素開始,該元素可以認爲已經被排序。

2.取出下一個元素,在已經排序的元素序列中從後向前掃描。

3. 如果該元素(已排序)大於新元素,將該元素移到下一位置。

4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置。

5.將新元素插入到下一位置中。

6.重複步驟2~5,元素將會從小到大排序。

三、實現

public static void arraySort(int length){
	// random一個長度爲length的隨機數組
	int[] arrayInt = new int[length];
	for(int i=0; i<arrayInt.length; i++){
		Random rd = new Random();
		arrayInt[i] = rd.nextInt(100);
	}		
		
	int k, j, a;
	// 第一元素是排序好的,然後從第二個開始和排序好的對比
	for(k=1; k<arrayInt.length; k++){
		a = arrayInt[k];
		j = k;
		// 將抽出來的元素和排序好的元素一一對比,至到遇到小於自己元素或者已是最左邊元素
		while(j>0 && a>arrayInt[j-1]){
			arrayInt[j] = arrayInt[j-1];
			j--;
		}
		
		arrayInt[j] = a;
	}
}

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