社区
Qt
帖子详情
查找效率。。。。。。???
addfourliu
2012-09-17 09:26:55
如果我有一个数组a[1000000] 里面保存了100万个数据
数组b[100]里面保存了100个数据(假设这100个数据a中都有),现在我想从a中找出b中这100个数据的位置,怎样才能使效率快一些。。。
...全文
179
7
打赏
收藏
查找效率。。。。。。???
如果我有一个数组a[1000000] 里面保存了100万个数据 数组b[100]里面保存了100个数据(假设这100个数据a中都有),现在我想从a中找出b中这100个数据的位置,怎样才能使效率快一些。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
addfourliu
2012-09-18
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
空间换时间?
[/Quote]
可以的,关键是效率。。。
addfourliu
2012-09-17
打赏
举报
回复
追问:不考虑上面所提到的问题
如果我想保存100万个数据,考虑到接下来,要对着100万个数据进行排序,
那么,我们采用什么样的形式对数据进行保存呢?! QList or QVector?
求指导。。。
addfourliu
2012-09-17
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
多线程,分块查找。。数组a分成N块分别查找
[/Quote]
啊?还要用到多线程呀。。。
如果我先把a进行一次快排,然后折半查找,效率不知道好不好。。。
shen_wei
2012-09-17
打赏
举报
回复
多线程,分块查找。。数组a分成N块分别查找
写不动代码的人
2012-09-17
打赏
举报
回复
空间换时间?
addfourliu
2012-09-17
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
自己写个hash函数。把a的内容映射成一个hash值
[/Quote]
100w个数据,要想高效率的映射到hash表,也不容易操作吧。。。
圆圆胖胖的车车
2012-09-17
打赏
举报
回复
额。。这样太慢了。。
最快的是建立中间的一个Hash表。
这样只需要遍历a一遍。b一遍就可以了。当然这需要一定的空间开销但是不大。
为了避免冲突 中间hash表可能会要200W的长度,依情况而定。
伪代码这样
//初始化全部为-1
//遍历a
HashTable table[200W];
for( int i = 0; i < 100W ; i++ )
{
int index = hash_function(a[i]);
table[i] = index;
}
//遍历b
for( int i = 0 ; i < 100 ; i++ )
{
int index = hash_function( b[i] );
if( table[index] != -1 )
{
pinrtf( 找到了。。。);
}
}
自己写个hash函数。把a的内容映射成一个hash值。int
为什么哈希表能够加快
查找
效率
?
很多语言都提供map的数据类型,map一个很常用的功能,那就是key-value的存储和
查找
功能。这种数据类型的实现原理就是通过哈希表来实现快速
查找
。 哈希表的基本原理:原本无序的集合经过哈希算法被重新调整位置,...
分块
查找
的思及其
查找
效率
分析(C语言)
分块
查找
,又称索引顺序
查找
,算法过程如下: ①在索引表中确定待查记录所属的分块(可顺序、可折半) ②在块内顺序
查找
1. 用折半
查找
查索引 原因:最终low左边一定小于目标关键字,high右边一定大于目标关键字。而...
33二叉树
查找
效率
分析
二叉排序树的
查找
效率
分析:
哈希
查找
效率
及应用场景
哈希
查找
效率
及应用场景
简述stl 中set,vector,map的
查找
效率
以及如何实现的?
简述stl 中set,vector,map的
查找
效率
以及如何实现的?
Qt
16,216
社区成员
26,595
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章