插入排序最簡單的排序方法之一。它是時間複雜度為o(n^2),空間複雜度為o(1)的一種穩定排序演算法。
基本思想:
插入排序有n-1趟排序組成。假設在第p個位置的元素為待插入元素,對於p=1到p=n-1趟,每一趟保證從位置到位置p的元素已經處於有序狀態。一開始預設a[0]
為已排序陣列中的元素,從arr[1]
開始逐漸往已排序陣列中插入元素,從後往前乙個個比較,如果待插入元素小於已排序元素,則已排序元素往後移動一位,直到待插入元素找到合適的位置並插入已排序陣列。
直接插入排序**:紅色部分表示已排序元素。
由於**中只有當待插入元素小於(不包括等於)已排序元素時,才會發生交換,等於的時候不會,因此插入排序是穩定的。
演算法的實現:
public class insertsort ;
insertsort obj=new insertsort();
system.out.println("初始值:");
obj.print(a);
system.out.println();
obj.insertsort(a);
system.out.println("\n排序後:");
obj.print(a);
} public void insertsort(int a){
for(int p=1;p=0&&x控制台輸出如下圖:
java 插入排序演算法
從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素小於前面的元素 已排序 則依次與前面元素進行比較如果小於則交換,直到找到大於該元素的就則停止 如果該元素大於前面的元素 已排序 則重複步驟2 重複步驟2 4 直到所有元素都排好序 這是插入排序的...
插入排序演算法(java)
一 基本思想 將乙個資料插入到乙個有序的資料中,從而產生乙個新的 個數加一的有序資料。二 時間複雜度 插入排序演算法的時間複雜度是o n 2 三 排序過程如下 例如第一次排序 32 21,12,34,9,18,11,35 第二次排序 21,32 12,34,9,18,11,35 第三次排序 12,2...
Java排序演算法之 插入排序
package algorithm.sort 原理 插入排序使用的是增量方法,每次將乙個待排序的數,插入到已經排好序的陣列中,直到所有待排序的數都插入到有序陣列中為止 類似於摸牌後整理牌 author administrator public class insertsort a j 1 key 將...