插入排序與簡單選擇排序的理解

2021-08-08 12:15:01 字數 491 閱讀 2817

簡單選擇排序,核心在於每一次迴圈中找到最小的位置,根據位置的相等關係來決定是否進行元素的交換。採用兩層迴圈,第一層迴圈從第乙個元素遍歷到倒數第二個元素,第二個元素從第一層迴圈的當前元素開始遍歷到最後乙個元素,在內層迴圈中進行元素和第一層當前元素進行比較,根據比較的結果來更新最小值或者最大值,然後判斷最小值和一層迴圈的當前元素是否相等來進行元素的交換。

插入排序方式類似碼撲克牌的方式,針對序列中的元素,外層迴圈從第二個元素開始,然後內層迴圈在當前元素和前乙個元素相比較需要移動的時候才進行迴圈移動,如果迴圈,則採用從當前元素開始反向遍歷的方式來實現將所有不符合的的元素進行後移,然後將標誌元素放入到該位置。每次重複直到所有的元素遍歷完成即可。

兩個方式的時間複雜度。第乙個選擇排序由於雙層迴圈都是要進行的,因此是平方的複雜度。第二個插入方法由於每一次的移動個數之間呈現等差數列的形式,因此可以採用等差數列求和的方式來進行計算,時間複雜度也處於平方的水平。

兩個方式的空間上都需要借助額外的單個變數元素,因此空間複雜度為1。

插入排序法與簡單選擇排序法

written by robert wang in southwest university of science and technology.插入排序法 插入排序就像玩撲克一樣,先找到第一張牌,拿起第二張牌的時候就要進行比較,如果比第一張小,則交換,反之,放在右邊不做處理。我們用程式來解決的話,...

氣泡排序 插入排序和簡單選擇排序

一次比較兩個元素,如果他們的順序錯誤就把他們交換過來 氣泡排序 test public void bubblesort int temp 交換時記錄中間值 for int i 1 i array.length i for int i 0 i array.length i 取無序的區間數值去插入到有序...

簡單排序 氣泡排序 簡單選擇排序 插入排序)

氣泡排序 氣泡排序,掃瞄len次,每次用下標0掃瞄到len 1 i,比較相鄰的兩個元素並交換 param num param len void bubblesort int num,int len cout b 簡單選擇排序 簡單選擇排序 掃瞄len次,每次從下標i掃瞄到len 1,每次掃瞄找到乙個...