Java排序演算法 插入排序

2021-08-29 16:18:26 字數 977 閱讀 9291

插入排序最簡單的排序方法之一。它是時間複雜度為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 將...