集合
文章平均质量分 77
GKHack
这个作者很懒,什么都没留下…
展开
-
ListSet_无序表搜索
无序表搜索就是一个个的遍历, 从头开始逐个检查, 直到表中关键字值等于给定关键字值, 则查找成功. 或者查完整个表, 查找失败为止. 实现代码: #include "iostream" #include "cstdio" #include "cstring" #include "algorithm" #include "assert.h" using namespace std; enu原创 2015-11-03 23:53:40 · 2233 阅读 · 0 评论 -
ListSet_对半搜索的递归算法
对半搜索是一种二分搜索, 将表划分为长度几乎相等的两个子表. 共有函数Search()调用私有函数BSearch(). 而后递归调用BSearch()函数实现对有序表的对半搜索. mid, left, right均为元素下标, 如果当前表不为空, 则令x与l[mid]比较. 若两者相等, 则搜索成功. 若前者小于后者, 则继续查找左半部分, 否 则查找右半部分. 下标范围分别为[left,原创 2015-11-04 16:29:37 · 2643 阅读 · 0 评论 -
ListSet_对半搜索的迭代算法
递归函数效率低, 常使用相应的迭代算法. mid, left, right均为元素下标, 如果当前表不为空, 则令x与l[mid]比较. 若两者相等, 则搜索成功. 若前者小于后者, 则继续查找左半部分, 否 则查找右半部分. 下标范围分别为[left, mid - 1], [mid + 1, right]. 如果当前搜索表为空表, 搜索失败返回NotPresent. 实现代码:原创 2015-11-04 16:31:16 · 2351 阅读 · 0 评论 -
ListSet_有序表搜索
一个有序表可以看成是一个已按关键字排序的有序集. 表的最后添增设了一个被称作哨兵的元素, 关键字为INF. 若表长为n, 需要在l[n]位置存放哨兵元素. 增加哨兵元素以后, 在for循环中不再 需要通过下标来判定是否已经查完整个表. 当表中l[i]的关键字值大于等于指定元素x的关键字时, for循环结束. 搜索失败的平均搜索长度: n / 2 + 2. 实现代码: #include "原创 2015-11-04 00:09:13 · 2085 阅读 · 0 评论