三種排序的思路

2021-09-26 13:42:02 字數 489 閱讀 1588

請說出至少三種排序的思路,這三種排序的時間複雜度分別為

o(n*n)

o(n log2 n)

o(n + max)

:1.o(n*n)

氣泡排序:比較相鄰的元素,如果第乙個比第二個大,就交換他們兩個,對每一對相鄰的元素做同樣的工作,從開始第一對到結尾最後一對,這步會讓後一位元素就是最大的數,對所有元素重複以上步驟,除了最後乙個,直到沒有任何一堆數字需要比較。

2.o(n log2 n)

快速排序:以乙個元素為基準,重新排序數列,比基準值小的元素放左邊,大的放右邊,然後在對左半邊和右半邊重複以上操作,直到只有乙個數字為止。

3.o(n + max)

計數排序:首先定義三個陣列,陣列a是待排序的陣列,countarray是用來臨時存放資訊的陣列,b是最終排好序的陣列。統計a中每個值為i的元素出現的次數,存入陣列 countarray 的第i項。最後將 countarray 中的記錄按每個元素的計數展開到輸出陣列b中,排序就完成了。

限流演算法 三種思路

限流演算法 常見的限流演算法有 令牌桶 漏桶 計數器。令牌桶限流 令牌桶是乙個存放固定容量令牌的桶,按照固定速率往桶裡新增令牌,填滿了就丟棄令牌,請求是否被處理要看桶中令牌是否足夠,當令牌數減為零時則拒絕新的請求。令牌桶允許一定程度突發流量,只要有令牌就可以處理,支援一次拿多個令牌。令牌桶中裝的是令...

分頁查詢的三種思路

在開發過程中,經常做的一件事,也是最基本的事,就是從資料庫中查詢資料,然後在客戶端顯示出來。當資料少時,可以在乙個頁面內顯示完成。然而,如果查詢記錄是幾百條 上千條呢?直接乙個頁面顯示完全的話,得多長啊。這時,我們可以用分頁技術。何為分頁?效果圖如下 這裡總共查詢了100條記錄,如果一次性顯示的話 ...

三種氣泡排序

package com.wxh617.sort public class bubblesort public static void main string args 1.最簡單的氣泡排序演算法,沒有技術含量 本例中排序6趟 public static void bubblesort1 int a ...