滴水逆向联盟

标题: VC++2012编程演练数据结构《36》磁盘文件进行排序 [打印本页]

作者: 大灰狼    时间: 2014-8-13 08:30
标题: VC++2012编程演练数据结构《36》磁盘文件进行排序
如何给磁盘文件排序
问题描述:
输入:一个最多含有n个不相同的正整数的文件,其中每个数都小于等于n,且n=10^7。
输出:得到按从小到大升序排列的包含所有输入的整数的列表。
条件:最多有大约1MB的内存空间可用,但磁盘空间足够。且要求运行时间越短越好。
分析:一步一步地解决这个问题,


创建一个工程




声名如下

[cpp] view plaincopy










调用如下

[cpp] view plaincopy


  • void main()  
  • {cout<<"运行结果:\n";  
  • int m=10;  
  • char *fa=".\\ak1.dat";  
  • ElemType d[10];  
  • srand(time(0));  
  • fstream fna(fa,ios::out|ios::in|ios::dec|ios::trunc);  
  • cout<<"文件未排序前的结果:\n";  
  • LoadFile myfile(fa,m);  
  • myfile.Print(fna);  
  • cout<<"文件排序后的结果:\n";  
  • myfile.FMergeSort(fna,d,m);  
  • myfile.Print(fna);  
  • fna.close();cin.get();  
  • }  







运行如下









欢迎光临 滴水逆向联盟 (http://www.dtdebug.com/) Powered by Discuz! X3.2