免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: flyingbox
打印 上一主题 下一主题

[算法] 4G的整形排序,可用内存为200M,怎么排? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-08-25 14:27 |只看该作者
想办法用统计方法加速...

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
12 [报告]
发表于 2009-08-25 14:36 |只看该作者
原帖由 aaaaa5aa 于 2009-8-25 13:16 发表

归并的时候内存铁定不够

难道不能把已经归并好的部分输出到磁盘啊

论坛徽章:
0
13 [报告]
发表于 2009-08-25 14:38 |只看该作者
原帖由 koolcoy 于 2009-8-25 14:36 发表

难道不能把已经归并好的部分输出到磁盘啊


同意并且经推断, 一定有磁盘

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:45
14 [报告]
发表于 2009-08-25 14:41 |只看该作者
原帖由 群雄逐鹿 于 2009-8-25 14:38 发表


同意并且经推断, 一定有磁盘

你也可以输出到网络, 然后给它取个非常好听的名字: 云排序

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
15 [报告]
发表于 2009-08-25 16:42 |只看该作者
编程珠玑 上第一个例子就是这个,用统计法  不是排序

论坛徽章:
0
16 [报告]
发表于 2009-08-25 18:30 |只看该作者
这个不是典型的外排序么
那个什么扫雪车模型,课上学的,不知道实际用的多不多

论坛徽章:
0
17 [报告]
发表于 2009-08-25 18:35 |只看该作者
原帖由 koolcoy 于 2009-8-25 14:36 发表

难道不能把已经归并好的部分输出到磁盘啊

到后来每个部分都大于200M怎么归并?

论坛徽章:
0
18 [报告]
发表于 2009-08-25 19:04 |只看该作者
200M内存+磁盘或u盘.

论坛徽章:
0
19 [报告]
发表于 2009-08-25 19:16 |只看该作者
原帖由 system888net 于 2009-8-25 19:04 发表
200M内存+磁盘或u盘.

200M内存+磁盘或u盘.,怎么实现

论坛徽章:
0
20 [报告]
发表于 2009-08-25 21:37 |只看该作者
1.外部排序
  外部排序就是用来解决内存不够用的, 我可以用int A[10] 40字节那排序4G的数据...
2.bit排序
  0->A[0] 1->A[0] ....  31->A[0]
   A[i>>5] |= 1<<(i&0x01F)
   当然bit适合无重复的情况
3.   
   int A[10]
   先排序0 ~10-1以内的数据
   加10 ~ 20-1的数据
   ....
    每次直接用桶排!!!
   
   这题就是每次排200M/4=50M的数

[ 本帖最后由 ubuntuer 于 2009-8-25 21:42 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP