快速上手「排序演算法」

2021-10-05 08:38:30 字數 1100 閱讀 8061

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 ...