演算法學習筆記之插入排序

2021-10-07 21:30:35 字數 642 閱讀 9210

舉個例子:摸牌的時候,一張張摸,每次處理新摸上來的那一張,一般習慣是從左到右公升序排列,那麼就是每摸上來一張,將摸上來的這張牌與它之前的牌比較大小,找到第一張比它小的牌為止,這時候第一張比它小的牌的右邊那個位置就是新牌該放的位置,對應的,為了空出這個位置給新牌,所有大於新牌的牌都應該往右邊挪乙個位置。

//到這裡的時候要麼是vec[j]<=key,要麼是j=-1;前者說明找到了key該放的

}//位置,後者說明之前的牌都比key大,即key該放在第乙個位置上

return

;}參考文獻

演算法導論第三版第二章

演算法學習筆記之插入排序

插入排序是一種簡單直觀且穩定的排序演算法。它的工作方式非常像人們排序一手撲克牌一樣,開始時,我們的左手為空並且桌子上的牌面朝下。然後,我們每次從桌子上拿走一張牌並將它插入左手正確的位置,為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進行比較。需求 排序前 排序後 排序原理 1.把所有的...

演算法學習之插入排序

1.演算法思想 alg s idea 從左至右有序 第乙個位置只有乙個元素,當然有序 每次2 j n 將元素aj插入到有序的a 1.j 1 中,並使a 1.j 有序 直至j n 2.alg偽 類c,不可複製直接執行 insertion sort a 將a 1.n 有序 for j 2 to n do...

演算法學習之插入排序

插入排序是一種最簡單的排序方法,對於少量元素的排序,它是乙個有效的演算法。其實現過程使用雙層迴圈,外層迴圈每次 插入乙個新的元素 內層迴圈將 新插入的數 與前面已排好序的部分進行比較,找到插空位置,形成新的有序數列。插入排序的平均時間複雜度是 o n 2 空間複雜度為常數階 o 1 具體時間複雜度和...