直接插入排序法的思想是,把待排序的元素分成兩部分,一部分是沒排好序的元素,另一部分是排好序的元素。把沒排好序的元素,逐一的插入已排好序的部分。
下面是使用直接插入排序法實現公升序排序的步驟:
1.從第乙個元素開始,可以認為該元素已經被排序,
2.取出下乙個元素,在已排序的元素序列中從後向前掃瞄,
3 若已排序元素大於新元素,則將該元素移到下一位,
4 重複上一步驟,直到找到已排序元素小於或等於新元素位置,
5 將新元素插入下一位置,
6 重複2的步驟。
例使用直接插入法,對一組資料 23,45,16,7,42按照由小到大順序排列並輸出結果。
排序過程如圖
初始關鍵字 45 16 7 42
第一步 【23 45】 16 7 42
第二步 【16 23 45】 7 42
第三步 【7 16 23 45】 42
第四步 【7 16 23 42 45】
**如下
// 待排序陣列
int [ ] data=;
for(int i=1, iint currentdata=data[i];
int temp=i;
while(temp>0&&data[temp-1]>currentdata){
data[temp]=data[temp-1];
// 迴圈條件
temp---;
// temp已經自減乙個了
data[temp]=currentdata;
for(int x: data){
system.out.println(x);
Java排序演算法之 插入排序
package algorithm.sort 原理 插入排序使用的是增量方法,每次將乙個待排序的數,插入到已經排好序的陣列中,直到所有待排序的數都插入到有序陣列中為止 類似於摸牌後整理牌 author administrator public class insertsort a j 1 key 將...
Java排序演算法 插入排序
插入排序最簡單的排序方法之一。它是時間複雜度為o n 2 空間複雜度為o 1 的一種穩定排序演算法。基本思想 插入排序有n 1趟排序組成。假設在第p個位置的元素為待插入元素,對於p 1到p n 1趟,每一趟保證從位置到位置p的元素已經處於有序狀態。一開始預設a 0 為已排序陣列中的元素,從arr 1...
Java排序之插入排序
插入排序 將乙個資料插入到已經排好序的序列中去,插入後保證序列依然有序,這個過程就是插入排序。現在給定乙個未知是否排好序的陣列,要將其進行從小到大排序。如果使用插入排序,必須先將該資料分為兩部分,一部分是排好序的,一部分是未排序的,並且逐一將未排序的部分插入到已排序的部分中去。演算法步驟描述 1 選...