# 基于文档集合上的检索
## 总体实现
顺序查找、二分搜索(用移位代替除法)、红黑树、AVL 树、哈希
抱歉留了个 B+ 树的坑还没写完,学完数据库回来补上
在实现各个算法基础上,加入了算法运行时间比较以及搜索比较次数比较,从比较次数其实可以很清楚的看出算法的时间复杂度,比如五百个单词 AVL 树大概就是搜索 8-9 次,基本就是 log2(500)
时间比较和次数比较整合了一个 JavaScript 的脚本,挺有名的一个库,很好用,简单的截图
#### 最初的界面,套了 Qt 给的例子里的文本编辑器,左侧有一个类似安卓抽屉一样的侧栏,里面是文件列表
![](https://www.writebug.com/myres/static/uploads/2021/10/23/2bc85f4c99f433dedf9eea21d796bc15.writebug)
#### 搜索界面
![](https://www.writebug.com/myres/static/uploads/2021/10/23/91bab80c2a581a1506d101b96e95574b.writebug)
#### 比较算法界面,数据处理过,并不是真实的数据,比较大小就好
![](https://www.writebug.com/myres/static/uploads/2021/10/23/64731439967bb0a044c4722158323795.writebug)
## 环境问题
Ubuntu16.04
QT 5.10.1
Qt Creator 4.5
## 以下是各种搜索算法简单的总结,如果我的代码以及文档帮助到了你,给个星吧谢谢
## The following is my summary of various search algorithms, a star, please.
### (一)顺序搜索
1. O(n)
2. 慢 操作次数太多
### (二)二分搜索
1. O(logn)
2. 可改进 (除法运算耗时) 移位运算
mid = (left +right) / 2 -> mid = (left + right) >> 1
3. 其他的改进方法:插值搜索 斐波那契搜索(更为智能的让 left 和 right 贴近真实值,但是需要字符串的加减)
### (三)哈希
1. O(1)
2. 字符串的哈希函数
3. 构造时间长
### (四)二叉搜索树系列
1. O(logn)
2. 基础的二叉搜索树
3. AVL 树 极为严格的平衡规则
4. 红黑树 更为精细的平衡规则
### (五)B 树系列
1. 为了更快的搜索,我们会将阶数设置的很大,这样层数就比较少,这一点上远远强于二叉搜索树
2. 广泛运用作各大数据库的索引机制
3. 从硬件角度来说,B 树和 B+ 树
4. B-树 ( 可以在非叶子节点命中 )
5. B+ 树( 把所有数据放在叶子节点,只能在叶子节点命中 ) (有待实现)
6. B*树
### (六)TrieTree 系列
1. 专门用于字符串搜索,搜索引擎的智能提示就是由 TrieTree 而来
2. 典型的空间换时间 O(26^n)
3. 26 路搜索树
没有合适的资源?快使用搜索试试~ 我知道了~
基于QT(C++)实现文档集合上的检索【100012774】
共83个文件
txt:45个
qrc:6个
h:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 31 浏览量
2023-06-20
14:23:32
上传
评论 1
收藏 306KB ZIP 举报
温馨提示
顺序查找、二分搜索(用移位代替除法)、红黑树、AVL 树、哈希 抱歉留了个 B+ 树的坑还没写完,学完数据库回来补上 在实现各个算法基础上,加入了算法运行时间比较以及搜索比较次数比较,从比较次数其实可以很清楚的看出算法的时间复杂度,比如五百个单词 AVL 树大概就是搜索 8-9 次,基本就是 log2(500) 时间比较和次数比较整合了一个 JavaScript 的脚本,挺有名的一个库,很好用,简单的截
资源推荐
资源详情
资源评论
收起资源包目录
100012774-基于QT(C++)实现文档集合上的检索.zip (83个子文件)
search
search.h 820B
avltree.cpp 7KB
documenthandler.cpp 14KB
0_0.pro.user 23KB
files
File_21.txt 646B
File_13.txt 535B
File_20.txt 508B
File_38.txt 232B
File_43.txt 241B
File_36.txt 320B
File_2.txt 817B
File_16.txt 435B
File_3.txt 825B
File_45.txt 264B
File_4.txt 773B
File_12.txt 436B
File_24.txt 594B
File_40.txt 325B
File_25.txt 549B
File_23.txt 516B
File_22.txt 525B
File_27.txt 717B
File_35.txt 345B
File_9.txt 568B
File_5.txt 504B
loveyou 20KB
File_28.txt 459B
File_32.txt 431B
File_19.txt 468B
File_6.txt 557B
File_33.txt 277B
File_30.txt 655B
File_26.txt 631B
File_17.txt 575B
File_14.txt 451B
File_41.txt 289B
Untitled.ipynb 6KB
File_7.txt 578B
File_39.txt 306B
File_1.txt 39B
File_44.txt 269B
File_42.txt 287B
File_37.txt 274B
File_29.txt 433B
File_10.txt 566B
File_8.txt 606B
.ipynb_checkpoints
Untitled-checkpoint.ipynb 6KB
File_34.txt 255B
File_11.txt 470B
File_18.txt 448B
File_31.txt 367B
File_15.txt 404B
compare.png 29KB
0_0.pro 1KB
search.cpp 5KB
documenthandler.h 5KB
QChart.js 51KB
QChart.qml 3KB
fileloader.h 293B
LICENSE 1KB
js.qrc 126B
main.cpp 678B
qml.qrc 192B
QChartGallery.js 3KB
search.png 77KB
qtquickconf.qrc 100B
init.png 13KB
word.cpp 587B
qtquickcontrols2.conf 123B
ContactModel.qml 3KB
files.qrc 2KB
avltree.h 1KB
main.qml 18KB
images.qrc 145B
images
xiaoxin.jpg 16KB
iconForListView.png 980KB
fileloader.cpp 2KB
LineInput.qml 4KB
fonts.qrc 97B
README.md 3KB
word.h 567B
fonts
fontello.ttf 10KB
rbtree.h 14KB
共 83 条
- 1
资源评论
神仙别闹
- 粉丝: 3810
- 资源: 7471
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功