堆排序及其時間空間複雜度分析

2021-08-21 12:05:21 字數 566 閱讀 8240

/*

* 堆排序

* 乙個建立堆的函式,乙個排序的函式

* heap初始建堆(大根堆),取得左右孩子中最大的結點,用其和根節點交換,

* 然後以此孩子結點繼續建堆

* heapsort 堆排序,先從非葉節點到跟進行迴圈建堆,交換根節點和最後乙個元素的位置,在迴圈建堆,

* 時間複雜度:主要在於初始化建堆和後來交換後迴圈建堆的過程。

* 迴圈n-1次,每次從根0一直到葉節點是log(n),所以o(nlog(n))

* 初始化建堆為從非葉節點層的最右端乙個結點向上迴圈建堆,2^(i-1)*(k-i)  (i為當前層數,k為堆高度) o(n)

*  最好 最壞平均情況都需要迴圈建堆, o(nlogn)

*  空間複雜度:堆排序為原地排序,常量級額外空間 o()

*/

public static void heap(int a,int parent,int len)

a[parent]=temp;

}public static void heapsort(int a)

}

氣泡排序及其時間 空間複雜度解析

1.概念及思路 重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,故稱為 氣泡排序 2.實現 include using na...

常用排序及其時間複雜度

1.選擇排序 不穩定,時間複雜度 o n 2 選擇排序的基本思想是對待排序的記錄序列進行n 1遍的處理,第i遍處理是將l i.n 中最小者與l i 交換位置。這樣,經過i遍處理之後,前i個記錄的位置已經是正確的了。2.插入排序 穩定,時間複雜度 o n 2 插入排序的基本思想是,經過i 1遍處理後,...

常用排序及其時間複雜度

1.選擇排序 不穩定,時間複雜度 o n 2 選擇排序的基本思想是對待排序的記錄序列進行n 1遍的處理,第i遍處理是將l i.n 中最小者與l i 交換位置。這樣,經過i遍處理之後,前i個記錄的位置已經是正確的了。2.插入排序 穩定,時間複雜度 o n 2 插入排序的基本思想是,經過i 1遍處理後,...