各排序演算法分類以及複雜度分析

2021-07-30 12:23:56 字數 1181 閱讀 7121

穩定性是指待排序的序列中有兩個或者兩個以上相同的項,排序前和排序後,看這些相同的項的相對位置有沒有沒發生變化,如果沒有發生變化,就是穩定的;如果發生變化,就是不穩定的。

1.1、直接插入排序

最壞時間複雜度:o(n^2)

最好時間複雜度:o(n)

平均時間複雜度:

o(n^2)

空間複雜度:o(1)

1.2、折半插入排序

最壞時間複雜度:o(n^2)

最好時間複雜度:o(n)

平均時間複雜度:

o(n^2)

空間複雜度:o(1)

1.3、希爾排序

平均時間複雜度:

o(nlogn)

空間複雜度:o(1)

2.1、氣泡排序

最壞時間複雜度:o(n^2)

最好時間複雜度:o(n)

平均時間複雜度:

o(n^2)

空間複雜度:o(1)

2.2、快速排序

最壞時間複雜度:o(n^2)

最好時間複雜度:o(nlogn)

平均時間複雜度:

o(nlogn)

空間複雜度:o(logn)

3.1、簡單選擇排序

最壞時間複雜度:o(n^2)

最好時間複雜度:o(n^2)

平均時間複雜度:

o(n^2)

空間複雜度:o(1)

3.2、堆排序

最壞時間複雜度:o(nlogn)

最好時間複雜度:0(nlogn)

平均時間複雜度:

o(nlogn)

空間複雜度:o(1)

4.1、二路歸併排序

最壞時間複雜度:o(nlogn)

最好時間複雜度:o(nlogn)

平均時間複雜度:

o(nlogn)

空間複雜度:o(n)

最壞時間複雜度:o(d(n+rd))

最好時間複雜度:

平均時間複雜度:

o(d(n+rd))

空間複雜度:o(rd)

各排序演算法的效能(複雜度)

1.時間複雜度 時間複雜度可以認為是對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。1 常見的時間複雜度有 常數階o 1 對數階o log 2 n 線性階o n 線性對數階o nlog 2 n 平方階o n2 2 時間複雜度o 1 演算法中語句執行次數為乙個常數,則時間複雜度為o 1...

各排序演算法的時間複雜度和空間複雜度

本文主要講解下平常我們用到的堆排序,歸併排序以及快速排序的時間和空間複雜度。堆排序 堆排序分為建堆和調整堆。建堆是通過父節點和子節點兩兩比較並交換得到的,時間複雜度為o n 調整堆需要交換n 1次堆頂元素,並調整堆,調整堆的過程就是滿二叉樹的深度logn,所以時間複雜度為o nlogn 所以最終時間...

演算法複雜度分析

分析非遞迴演算法效率的通用方案 1.決定用哪個 哪些 引數作為輸入規模的度量 2.找出演算法的基本操作 作為一規律,它總是位於演算法的最內層迴圈中 3.檢查基本操作的執行次數是否只依賴輸入規模。如果它還依賴一些其他的特性,則最差效率 平均效率以及最優效率 如果必要 需要分別研究。4.建立乙個演算法基...