| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3784 人关注过本帖
标题:树:数据太大情况下数据结构存储
只看楼主 加入收藏
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
结帖率:91.43%
收藏
已结贴  问题点数:20 回复次数:10 
树:数据太大情况下数据结构存储
现在我有一个几百兆的字典,想统计其数字的使用特征。
我是这样想的:
从一个口令中获取到其中的数字部分
用广度搜索的办法建一个树

程序代码:

程序代码:
struct num{int number;num *NEXT[10];};header[10]={0,NULL......};
for(int i=0;i<10;i++)
    header.NEXT=NULL;
......
source[10]//这里存的是一个口令中的数字部分,假设都是10个数字
......
num *temp=header;
for(int i=0;i<10;i++)
{
    if((temp+source[i])==NULL)
    {   
        temp.NEXT[source[i]]=malloc(sizeof(num *));
        给0给NULL;
    }
    temp=NEXT[source[i]];
    temp.number++;
}
......
        


我的大体思路是这样,大家帮忙看看有没有什么问题。

现在的主要问题是,如果按照这样处理数据,占用的空间太大了,内存不够,怎么办
搜索更多相关主题的帖子: 统计 
2015-02-11 08:52
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
什么机器?几百兆的内存都满足不了!


[fly]存在即是合理[/fly]
2015-02-11 09:12
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 2楼 azzbcc
不是说要连续内存吗?连续的好像不行。而且如果以后统计的规模大的话,再加一个分支原来足够的内存就又不够了
2015-02-11 14:30
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
一个几百兆的字典,把数据结构好好设计一下,是可以存下来的,

你的数据结构我没看明白!


[fly]存在即是合理[/fly]
2015-02-11 15:28
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 4楼 azzbcc
几百兆是第一个,之后还有很多很多个,目前加起来已经好几百个G了。
数据结构是这样的。比如根节点Header[10]存储0-9,若为11,23,46,43等,救在相应的Header[i]中继续malloc一个结构体,用来存ij。就这样依次往下:
第一层是0-9
第二层代表00-09,10-19,20-29......90-99
第三次代表000-009,010-019,......090-099,100-109,110-119......900-909,910-919...990-999
.....
2015-02-11 15:46
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
几百个G的东西我没操作过,建议用数据库优化吧!

目前看你的数据结构有很大的优化空间,比如以位为单位进行操作,或者重新设计。

信息不够!

话说初始就几百兆的字典怎么就变成几百G了?我没理解对么?


[fly]存在即是合理[/fly]
2015-02-12 11:31
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 6楼 azzbcc
给了我一堆字典,第一个是600M的
2015-02-12 23:42
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 6楼 azzbcc
数据库从来没有接触过,不知道看哪方面的资料,版主能稍微给个方向吗,或者具体推荐看什么书更好
2015-02-12 23:43
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:20 
你这个难点就在大数据了。

分块处理吧,读入一块、处理一块、存储一块。


[fly]存在即是合理[/fly]
2015-02-13 09:35
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 9楼 azzbcc
想了很久,不会啊。。。。。。
2015-02-25 10:38
快速回复:树:数据太大情况下数据结构存储
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045223 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved