以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  求教C语言问题?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=64393)


--  作者:YL.J
--  发布时间:7/5/2008 7:13:00 PM

--  求教C语言问题?
有一个100M的文本文件,现在要求最多消耗的内存空间不得超过1M,对该文件进行排序。
参考:一般而言,10秒以下(CPU: PIII 1.13GHz, RAM: PC133, Hard Drive: 4200rpm, 2MB memory)

我看不懂怎么做
请给我讲讲其中 的原理


--  作者:chenqm0454
--  发布时间:8/4/2008 8:35:00 AM

--  
假的吧11
--  作者:zliming
--  发布时间:8/28/2008 8:07:00 AM

--  
比较好做了,这个是大概想法,根据实施情况调整buf大小
int i;
int ref[256]={0};
char buf[32*1024];
int read = 0;
FILE *fp = fopen("xxx", "r+");
while(!feof(fp))
{
read = fread(buf, 32*1024, 1, fp);
if(read > 0)
  for(i = 0; i < read; i++) ref[buf[i]]++;
}
fseek(fp, 0, SEEK_SET);
for(i = 0; i < 256; i++)
fwrite(&i, 1, ref[i], fp);
fclose(fp);
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms