常用的排序演算法 快速記憶

2021-10-01 13:45:29 字數 1224 閱讀 8314

一、氣泡排序-------迴圈n-1趟,每趟選乙個相對最大的

最簡單的排序,

氣泡排序,氣泡排序是迴圈n-1趟 ,從i=0開始,每趟從左到右,從j=0開始,比較n-1-i次,依次比較相鄰索引對應的兩數,左比右大則交換值,否則不變。這樣趟i都能拿到乙個最大值,即i-1個最大值,最後乙個最小值不用比。排序結束。(優化點:如果某躺未交換,說明已正序,可終止)。

那麼最好的情況就是序列本身就是公升序的,一趟下來比較了n-1次不需要交換結束排序,時間複雜度為o(n);

最壞的情況序列本身降序,那麼第一次就需要交換n-1次,第二次排序需要交換n-2次,最後一共需要交換(n-1)+(n-2)+(n-3)+….+1= n(n-1)/2,所以時間複雜度為o(n^2)。故時間複雜度為o(n)~o(n^2)。平均複雜度為o(n^2)。

二、選擇排序

三、插入排序

n-1輪排序,

四、希爾排序

又稱縮小增量排序,是一種優化後的高效的插入排序。目前看來,希爾的核心最後出來的並不是絕對有序的,是巨集觀排序,如果用希爾之後,再用一次插入排序,也能很高效的絕對排序。

原理:比如,先2個為一組,陣列的增量索引=n/2,n(奇數為n+1)個組,每組內的2個數進行一次小範圍內的插入排序(需要換則其索引自然交換了)。第一輪的每組做完之後。

開始第二輪,增量索引變成n/2/2,n。。。再來一輪內部比較。

最後增量索引變成1,形成了只有一組,那希爾排序結束,得到乙個大概的巨集觀排序結果,還需要做一次插入排序。

五、快速排序-------快是比冒泡快,原因是拿乙個隨機數拆成兩份,遞迴此操作

隨機,或就第一數x,先拿去和所有數做一趟比較排序後,把比x小的放左邊,大的放右邊。(核心就是這行)

然後再對兩邊的數分別就行如此遞迴快速排序。

restful規範快速記憶

十個規則 1 因為是面向資源程式設計,所以每個url代表一種資源,url中盡量不要用動詞,要用名詞 2 盡量使用https,https代替http 3 在url中體現是否是api 4.在url中體現版本 5 在url中的過濾條件 page 3 6 根據method不同,進行不同的操作 get pos...

快速排序(速記)

摘至本人有道雲筆記 快速排序 速記 1,取乙個元素作為基準值 2,把大於基準值的放右邊,小於基準值的放左邊 3,在左邊執行 1,2,遞迴直到列表長度小於2 同理 右邊同樣 4,將子串行排序後 同基準值合併 得到有序序列 修 此例始終將第乙個值作為基準值,實際上這樣做是沒有意義的,因為這樣左邊的列表始...

CSS快速記憶筆記(四)

知識點34 css定位及特點 position 為什麼要用定位?定位 定位模式 邊偏移 重點記憶 將盒子定位在指定的某乙個位置,自由的漂浮在其他盒子 包括標準流和浮動 的上面。標準流在最底層,浮動在中間,定位在最高層 能說出為什麼常用的 子絕父相 布局?邊偏移 定位的盒子,是通過邊偏移來移動位置的,...