课本源码部分
第9章 查找 - 次优查找树
——《数据结构》-严蔚敏.吴伟民版
源码使用说明 链接☛☛☛ 《数据结构-C语言版》(严蔚敏,吴伟民版)课本源码+习题集解析使用说明
课本源码合辑 链接☛☛☛ 《数据结构》课本源码合辑
习题集全解析 链接☛☛☛ 《数据结构题集》习题解析合辑
本源码引入的文件 链接☛ Base.c、BinaryTree.c
文档中源码及测试数据存放目录:数据结构▲课本算法实现▲09 查找 5 NearlyOptimalSearchTree
概述
次优查找树是折半查找的一种一般形式,其理论基础是“被查找的各元素是不等概的”,而折半查找就是等概的,我们在使用中默认了这一性质。
解析
用折半查找时,应该首先比较最中间的关键字,如果比对成功,查找结束。如果待查关键字小于查找表中关键字,就继续在左边的部分里进行折半查找;反之,在右边查找。
但是,这是建立于各元素出现概率相同的情况下。如果各元素出现的概率,或者说权重不一样呢?这时,最优查找树的查找效率是最高的。可是鱼与熊掌不可兼得,最优查找树的构造太费时间,所以此时需要个折衷的方案,使得构造树不那么复杂,但查找效率又比折半查找高,这就是次优查找树的来历。
源码
文件一 ☛ NearlyOptimalSearchTree.h
文件二 ☛ NearlyOptimalSearchTree.c
文件三 ☛ NearlyOptimalSearchTree-main.c (测试文档)
文件四 ☛ TestData_Table.txt(查找表测试数据)
测试结果展示