插入排序演算法。

2021-08-15 03:18:48 字數 747 閱讀 2703

直接插入排序是將未排序的資料插入至已排好序序列的合適位置。

具體流程如下:

1、首先比較陣列的前兩個資料,並排序;

2、比較第三個元素與前兩個排好序的資料,並將第三個元素放入適當的位置;

3、比較第四個元素與前三個排好序的資料,並將第四個元素放入適當的位置;

......

4、直至把最後乙個元素放入適當的位置。

假如有初始資料:25  11  45  26  12  78。

1、首先比較25和11的大小,11小,位置互換,第一輪排序後,順序為:[11, 25, 45, 26, 12, 78]。

2、對於第三個資料45,其大於11、25,所以位置不變,順序依舊為:[11, 25, 45, 26, 12, 78]。

3、對於第四個資料26,其大於11、25,小於45,所以將其插入25和45之間,順序為:[11, 25, 26, 45, 12, 78]。

.......

4、最終順序為:[11, 12, 25, 26, 45, 78]。

直接插入排序是穩定的。直接插入排序的平均時間複雜度為o(n2)。

public

void sort(int

arr) else14}

15 arr[j+1] =tmp;

16 system.out.println(i + ":" +arrays.tostring(arr));17}

18 }

插入排序演算法

插入排序演算法 思想 把排序過程看作是序列單個有序擴充套件為整體有序的過程,即首先取序列第二個元素與第乙個元素比較,將其插入合適位置,再將第三個元素與前兩個元素比較,將其插入合適位置,如此進行,直到最後取第n個元素與前n 1個元素進行比較並將其插入合適位置。演算法 建立日期 2004 12 14 插...

演算法 插入排序

include include 插入排序 n 2為的效率。具體思想 將陣列分為兩部分,一部分是有序的,一部分為無序的 然後從無序中選取乙個數插入在有序的數中的恰當的位置,以此迭代,直到無序的數全部遍厲完畢 void insert sort int a,int n a j tmp break retu...

插入排序演算法

下面這段話摘自 一般來說,插入排序都採用in place在陣列上實現。具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在已經排序的元素序列中從後向前掃瞄 如果該元素 已排序 大於新元素,將該元素移到下一位置 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置 將...