[DSA] Binary Search 以及 BST

**Binary Search** (二分搜尋) 和**BST** (二叉搜尋樹, Binary Search Tree):


---


**Binary Search (二分搜尋)**


**定義:** 

- 二分搜尋是一種在已排序的數組或列表中查找特定值的算法。


**基本步驟:**

1. 找到中間元素。

2. 如果中間元素與目標值匹配,則返回其索引。

3. 如果中間元素小於目標值,則在右半部分(中間之後)重複上述步驟。

4. 如果中間元素大於目標值,則在左半部分(中間之前)重複上述步驟。


**時間複雜度:** 

- 最差情況和平均情況下的時間複雜度為 \(O(\log n)\),其中 n 是列表或數組的大小。


---


**BST (Binary Search Tree, 二叉搜尋樹)**


**定義:** 

- 二叉搜尋樹是一種節點的二叉樹結構,其中每個節點都有一個可比較的鍵(和相關的值),並且滿足以下性質:

  - 左子樹中的所有鍵都小於節點的鍵。

  - 右子樹中的所有鍵都大於節點的鍵。


**基本操作:**

1. **插入 (Insert)**: 在 BST 中插入一個新鍵。

2. **查找 (Search)**: 檢查 BST 中是否存在特定的鍵。

3. **刪除 (Delete)**: 從 BST 中刪除指定的鍵。

4. **中序遍歷 (In-order Traversal)**: 遍歷 BST 的方法之一,結果是按鍵的升序訪問所有節點。


**時間複雜度:**

- 在平衡的 BST 中,插入、查找和刪除的時間複雜度均為 \(O(\log n)\)。但在最差情況下(例如當樹成為一個“鏈”時),這些操作的時間複雜度為 \(O(n)\)。


**註:**

- 為了確保 BST 的高效性,常常使用平衡技術,如 AVL 樹或紅黑樹,來確保樹保持大致平衡,從而保持操作的 \(O(\log n)\) 時間複雜度。


---


總結:雖然 Binary Search 和 BST 都與“二分”這一概念相關,但前者是一種在已排序的數組中查找元素的算法,而後者是一種數據結構,用於保存和檢索鍵值對。

留言

Google Search

推薦內容橫式

本月熱門文章

國民黨陳玉珍翁曉玲自肥條款 可望再出現連戰兩億公務員? 各種荒腔走板的陳玉珍、翁曉玲 真是令人傻眼

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

悲痛!XREX區塊鏈金融犯罪調查師陳梅慧Miffy殞落,揭露虛擬貨幣犯罪背後的黑幕

中華民國國軍辛苦了 因應中共軍演努力監視

20241123 BoA : One's Own in TAIPEI 難得一見的BoA來台灣演出

[FAANG面試] 如何準備Google Technical Program Manager (TPM) 面試

金融犯罪調查專家陳梅慧 離奇車禍死亡 疑點整理

ASMR 自主性感官經絡反應 用ASMR 音樂/影片 來助眠? 篠田優 Shinoda Yui 的ASMR影片

常見詐騙案例犯罪手法及預防方式一覽表 (持續更新)

大學生暑假打工 新北市政府 109 年度 大專青年公部門暑期工讀計畫

這個網誌中的熱門文章

Android應用開發豆知識:利用 adb 安裝 apk 到裝置上

Android 中文輸入法 官方版 ! Gboard - Google 鍵盤 開始支援注音輸入啦

Google Play 推薦Android app 誠徵App排行榜

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

[家教][社會觀察] 建中教我的事 沒上建中被父母親折磨? 在建中到底是如何 ...

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

Acer ICONIA Smart S300 更新後越來越好 Acer也有出手機?!

[品質控制] 什麼是Sanity test ? 軟體測試常見名詞整理 包含不同部門的測試人員負責範圍

新鮮人找工作:職場名詞解釋 AE FAE Pre-sales Post-sales