課本源碼部分 第9章 查找 - 次優查找樹 ——《數據結構》-嚴蔚敏.吳偉民版 源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明 課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯 習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯 本源碼引入的文 ...
課本源碼部分
第9章 查找 - 次優查找樹
——《數據結構》-嚴蔚敏.吳偉民版
源碼使用說明 鏈接☛☛☛ 《數據結構-C語言版》(嚴蔚敏,吳偉民版)課本源碼+習題集解析使用說明
課本源碼合輯 鏈接☛☛☛ 《數據結構》課本源碼合輯
習題集全解析 鏈接☛☛☛ 《數據結構題集》習題解析合輯
本源碼引入的文件 鏈接☛ Base.c、BinaryTree.c
相關測試數據下載 鏈接☛ 數據包
文檔中源碼及測試數據存放目錄:數據結構\▲課本演算法實現\▲09 查找\05 NearlyOptimalSearchTree
概述
次優查找樹是折半查找的一種一般形式,其理論基礎是“被查找的各元素是不等概的”,而折半查找就是等概的,我們在使用中預設了這一性質。
解析
用折半查找時,應該首先比較最中間的關鍵字,如果比對成功,查找結束。如果待查關鍵字小於查找表中關鍵字,就繼續在左邊的部分里進行折半查找;反之,在右邊查找。
但是,這是建立於各元素出現概率相同的情況下。如果各元素出現的概率,或者說權重不一樣呢?這時,最優查找樹的查找效率是最高的。可是魚與熊掌不可兼得,最優查找樹的構造太費時間,所以此時需要個折衷的方案,使得構造樹不那麼複雜,但查找效率又比折半查找高,這就是次優查找樹的來歷。
源碼
文件一 ☛ NearlyOptimalSearchTree.h
文件二 ☛ NearlyOptimalSearchTree.c
文件三 ☛ NearlyOptimalSearchTree-main.c (測試文檔)
文件四 ☛ TestData_Table.txt(查找表測試數據)
測試結果展示