三 插入排序

2022-07-02 01:42:12 字數 911 閱讀 6221

插入排序、和打撲克牌,抓牌的過程是一樣的。

大致就是這麼個意思,圖畫的不好,請擔待。圖上描述的是插入的過程,那麼他怎麼知道,乙個乙個的和前面的作比較,比前邊的數字小就交換,一直交換到正確的位置。

package

bubbling;

/*** 插入排序

* *

@author

zy 劉會發

* @version

1.0 *

@since

2020/4/9 */

public

class

insert ;

for (int i = 1; i < a.length; i++) }}

print(a);

}/*** 交換**

@param

a 要交換位置的陣列

* @param

i 要交換的位置(正確的位置)

* @param

j 最小值所在的位置

*/static

void exchange(int a, int i, int

j)

static

void print(int

a) }

public

static

void

main(string args)

}

從上訴**看出,他和冒泡很像,冒泡是從前往後比較交換,他好像是反過來的樣子,確實是這樣的,但是插入排序卻比冒泡效率要高的很多。你細品,再品。冒泡每乙個都要作比較而插入排序好像不是呦。插入排序只要找到位置了,那就一定是正確的,但是冒泡只有在完成所有迴圈之後才會是正確的位置!

三 插入排序

我們打牌的時候,拿到的牌經常是需要進行排序操作的,一般是一張一張的來,將每一張牌插入到其他有序的牌中的適當位置。基於這種思想,就有了插入演算法 通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。將第一待排序序列第乙個元素看做乙個有序序列,把第二個元素到最後乙個元素當成...

排序演算法(三)插入排序

今天來更新排序演算法中的第三種演算法 插入排序插入排序是基於比較的排序。所謂的基於比較,就是通過比較陣列中的元素,看誰大誰小,根據結果來調整元素的位置 因此,對於這類排序,就有兩種基本的操作 比較操作 交換操作其中,對於交換操作,可以優化成移動操作,即不直接進行兩個元素的交換,還是用乙個樞軸元素 t...

排序演算法(三) 插入排序

一 直接插入排序 最差時間複雜度 o n 2 最優時間複雜度 o n 平均時間複雜度 o n 2 穩定性 穩定 直接插入排序 insertion sort 是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對未排序的資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。插入排序演算法的一般...