1、前序排序
(1)遍歷的第乙個是根節點
(2)第二個是根節點的左子樹中的節點
(3)根節點—左子樹—右子樹
2、後序排列
(1)根節點會把序列分為左右兩端,左端為左子樹節點,右側為右子樹上結點、
(2)左子樹—右子樹—根節點
3、中序排序
(1)左子樹—根節點—右子樹
1、不穩定排序
在排序過程中,相等的兩個數比較之後不會改變其原來的位置,即不需要交換
2、常見的穩定排序
(1)氣泡排序
(2)插入排序
(3)歸併排序
(4)基數排序
3、常見的不穩定排序
(1)選擇排序
(2)堆排序
(3)希爾排序
(4)快速排序
1、將遞迴演算法改為對應的非遞迴演算法時,通常需要使用棧
1、二叉樹
(1)父節點的鍵值總是大於或等於(小於或等於)任何乙個子節點的鍵值
(2)每個結點的左子樹和右子樹都是乙個二叉堆(都是最大堆或最小堆)
2、堆
(1)堆heap是一種完全二叉樹
(2)大頂堆:每個節點的值大於等於其孩子節點的值
(3)小頂堆:每個節點的值都小於等於其孩子節點的值
1、堆排序
找出若干個數中最大/最小的前k個數,堆排序最好
2、二分查詢
可以用二叉判定樹,查詢不成功的次數不超過判定樹的深度,而樹的深度為log2n+1
3、歸併演算法merge
(1)將兩個順序序列合併成乙個順序序列
(2)例子
設有初始狀態為的陣列
第一次歸併後:,,,,比較次數3
第二次歸併後:,,比較次數 4
第三次歸併後:,比較次數4
總的比較次數為11,逆序列為14
排序演算法 快速排序演算法
網際網路的大型公司還在火熱招聘中,參與了一次又一次的筆試,都不通過,我還是太菜!作為程式設計人員,需要邁過去 資料結構與演算法 這個坎,畢竟,筆試不會真的很虧,加油吧,少些水,多點實操。一 快速排序演算法思想 從一組資料中找出乙個基準值,一般是選擇中間值作為基準值,然後從左到右將值與基準值進行比較,...
演算法 排序演算法 快速排序
快速排序是對冒泡法排序的一種改進。快速排序演算法 的基本思想是 將所要進行排序的數分為左右兩個部分,其中一部分的所有資料都比另外一 部分的資料小,然後將所分得的兩部分資料進行同樣的劃分,重複執行以上的劃分操作,直 到所有要進行排序的資料變為有序為止。可能僅根據基本思想對快速排序的認識並不深,接下來以...
ibatis 快速上手
簡介 例子 現在我們我們通過乙個簡單的案例,了解如何通過ibatis解決資料訪問問題。現在有有乙個資料庫,資料庫裡面有一張人員資訊表 需求是這樣 通過乙個web應用程式顯示人員資訊表裡面的資訊,並且可以新增 修改 刪除人員記錄 乙個並不複雜的案例,但是它覆蓋所有開發首先要學習的內容。第1步 the ...