穩定性是指待排序的序列中有兩個或者兩個以上相同的項,排序前和排序後,看這些相同的項的相對位置有沒有沒發生變化,如果沒有發生變化,就是穩定的;如果發生變化,就是不穩定的。
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.建立乙個演算法基...