排序演算法筆記

2021-08-01 09:27:19 字數 380 閱讀 3083

1、直接插入排序(on^2,穩定的)

將最左邊的作為乙個有序數列;設立哨兵,比較並插入已形成的有序數列中。

2、希爾排序(時效不好分析,不穩定)

直接插入排序的公升級版,調整不同的增量d/2----縮小增量排序,

3、快速排序的思想是分治思想

概括來就是在分治的過程中,每次以最後乙個元素為基準,兩個index指向頭端和尾端,然後前段index右移找尋比基準大的數,後端index左移找尋比基準小的數,都找到後就開始開始交換兩個數,直到左右兩個index相遇。這樣一輪下來,在最後相遇的地點,左邊的都是比基準小的數,畢竟比基準大的都換到右邊去了,右邊同理。然後把基準換到相遇的地點,然後分治思想對左邊的細換。

ps:是否穩定的標準:相等元素的前後順序沒有改變。

排序演算法筆記

一些總結的比較好的部落格 1.排序學習筆記 2.部分排序方法的整理 1 外層迴圈將排序好的除去 2 內層迴圈將沒排好的陣列進行前後比較大小,每經過乙個迴圈,最大的數都在最後面 穩定排序,時間複雜度o n2 void bubblesort vector int arr 第一層下來最大的值已經冒泡到最上...

演算法筆記 排序

o nlogn 比如 5,8,5,2,9 選擇排序演算法排序,第一次找到最小元素 2,與第乙個 5 交換位置,那第乙個 5 和中間的 5 順序就變了,所以不穩定 比如序列 6,8,7,6,3,5,9,4,在經過第一次分割槽操作之後,兩個 6 的相對先後順序就會改變 include include i...

演算法筆記 排序演算法 插入排序

插入排序的方法就類似於 在鬥地主發牌時,一張張牌地拿起並插入到自己手中的牌堆中。假設陣列 arr 有n個無序元素。每一次的插入就是在區間 0,i 中找到 arr i 1 對應的位置並插入。0,i 就相當於我們手中牌堆,arr i 1 就相當於下一張要插入的牌。直到沒有下乙個要插入的數,該陣列就變得有...