每日學演算法(一) 插入排序

2021-06-26 17:48:54 字數 453 閱讀 6411

《演算法導論》裡面說「是否具有演算法知識與技術的堅實基礎是區分真正熟練的程式設計師與初學者的乙個特徵。如果有乙個好的演算法背景,那麼你可以做的事情就多得多」。所以今天開始,跟著《演算法導論》學習演算法。看著那本厚厚的書,不知道200天能不能學完。本系列部落格不是《演算法導論》的學習筆記,而是在學習演算法後基於書上偽**的實現。前面都會以c語言來實現,後面有可能也以python來實現,誰知道呢。

今天是第乙個演算法,最簡單的插入排序。

void insertion_sort(int *array, int len)

array[i+1] = key;

}}

上面實現中,計數使用有符號整型,因為此處使用從小到大排序。對於記憶體敏感的地方,如嵌入式程式設計,就會使排序個數縮小一半,而考慮到插入排序在資料量上去後(其實數量級在哪個範圍,我也沒算出來

最後,演算法時間複雜度為o(n^2)

演算法 一 插入排序

插入排序演算法類似於玩撲克時抓牌的過程,玩家每拿到一張牌都要插入到手中已有的牌裡,使之從小到大排好序。撲克牌的插入排序 也許你沒有意識到,但其實你的思考過程是這樣的 現在抓到一張7,把它和手裡的牌從右到左依次比較,7比10小,應該再往左插,7比5大,好,就插這裡。為什麼比較了10和5就可以確定7的位...

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

首先,對排序演算法 輸入 n 個數 輸出 序列的乙個排序,使得a1 a2 an 待排序的數為key 插入排序演算法,是乙個對少量元素進行排序的有效演算法.其偽 如圖 插入排序演算法在形式上類似於我們平時打牌時,邊抽牌邊整理撲克牌的順序,我們將新的牌與手中已經整理好順序的撲克牌進行比較,最終將抽到的牌...

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

一 插入排序 直接插入 二分插入 希爾排序 基本思想 從前面已經排序好的資料中查詢合適的位置,將待排序資料插入到該位置 從後面向前找合適的位置 1 直接插入排序 基本思想 從右向左查詢 從左邊已排序好的資料中查詢合適的位置,插入待排序的資料。private static void derictins...