非線性時間比較類排序:通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o(nlogn),因此稱為非線性時間比較類排序。
線性時間非比較類排序:不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。
氣泡排序:重複地走訪過要排序的元素,依次比較相鄰兩個元素,如果他們的順序錯誤就把他們調換過來,直到沒有元素再需要交換,排序完成。時間複雜度: o(n^2)
選擇排序:初始時在序列中找到最小(大)元素,放到序列的起始位置作為已排序序列;然後,再從剩餘未排序元素中繼續尋找最小(大)元素,放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 時間複雜度:o(n^2)
插入排序
希爾排序
歸併排序
快速排序
堆排序二叉樹第i層的節點數最多為2 (i≥1)。
深度為k的二叉樹至多有2-1個節點(k≥1)。
包含n個節點的二叉樹的高度至少為log2(n+1)。
在任意一顆二叉樹中,諾終端節點的個數為n0,度為2的結點數為n2,則n0=n2+1。
前序:根在前,同級先左後右 (abcdefghk)
中序:先左後根右最後(bdcaehgkf)
倒序:先左後右根最後(dcbhkgfea)
每個節點或是紅色的,或是黑色的,根節點是黑色的,每個葉節點(nil)是黑色的,如果乙個節點是紅色的,則它的兩個子節點都是黑色的,對於每個節點,從該節點到其所有後代葉節點的簡單路徑上,均包含相同數目的黑色節點。時間複雜度為o(logn)
跳表是平衡樹的一種替代的資料結構,他的時間複雜度為o(logn),而普通單鏈表查詢乙個元素的時間複雜度為o(n)
動態規劃演算法是通過拆分問題,定義問題狀態和狀態之間的關係,使得問題能夠以遞推(或者說分治)的方式去解決。
二叉樹 二叉樹的相關操作
遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...
二叉樹相關
1.首先建立乙個樹節點,節點有值,左節點和右節點 author 張夢楠 title package description date 2018 5 2519 27 blog www.itzmn.com 樹的節點類 public class treenode public treenode int v...
二叉樹相關
廣度優先遍歷 對於每層的節點,放到乙個用來處理節點佇列裡,另外每個佇列對應乙個vector,將每層節點放進vector 對於每個佇列,彈出先放的元素q.front,將這個元素放進vector,隨後,將左節點和右子節點放進佇列 class solution queue q q.push root wh...