大侠们,帮我看看我的这个想法有 必要 实现 吗?(字符串排序)

Crazy_hand 2008-10-25 05:53:16

假如现在有1000个字符串需要排序:
我的想法是:

程序运行过程:

获取文件 - 文件分割 - 动态生成批处理 - 内容排序程序 排序 - 文件合并 - 文件检索(类似归并排序) - 输出到目标文件 - 成功!

细节:

1 主程序:
参数 pathname\name.txt 200 5
pathname\name.txt //需要排序的文件
200 //每读取200行字符串后,写入一个单独的文件(最后为5个以name_%index%.txt)
5 //同时运行 内部排序程序的个数。
主程序在把文件分好后,动态生成-个批处理文件。
//准备5个内部排序程序,
//然后每个内部排序程序处理一个name_%index%.txt文件
copy 内部排序程序 5个
start 内部排序程序_%index%.exe name_%index%.txt
生成后,运行同时打开5个内部排序程序
-----


2 内部排序程序:(会同时启动5 个这样的程序)
参数: pathname\name_%index%.txt //由主程序分好的文件;
然后内部排序会把在这个文件中的字符串排序好后,重新写回。
--

3 内部排序程序全部排序完毕后,返回到主程序,
然后主程序会把这几个排序好的文件合并成一个文件,
利用一个26轮的循环(类似一个选择排序的方法)依次检查26个字母,每找到一行,就写到新生成的name.txt(要给用户看的文件)里面

4 清理垃圾。。
输出“排序成功。。”
等等待下一个文件
...全文
93 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Crazy_hand 2008-10-26
  • 打赏
  • 举报
回复
看来好像还是有必要写一下。
我还没用过归并呢!!!
不过好像很费资源。。。。。
lann64 2008-10-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lann64 的回复:]
这个不就是堆排序?
如果仅仅1000个串还真没必要。
[/Quote]
对不起是我记错了,是多路归并排序
lann64 2008-10-26
  • 打赏
  • 举报
回复
这个不就是堆排序?
如果仅仅1000个串还真没必要。
cpp_studyer 2008-10-25
  • 打赏
  • 举报
回复
filemapping

呵呵
sni_yang 2008-10-25
  • 打赏
  • 举报
回复
up!jf!
sni_yang 2008-10-25
  • 打赏
  • 举报
回复
up!jf!
太乙 2008-10-25
  • 打赏
  • 举报
回复
还不如将所有串读入内存,然后排序,我想,1000个,内存还是容得下的

文件操作很费时!效率也不高!
太乙 2008-10-25
  • 打赏
  • 举报
回复
看似貌似比较高深!
Crazy_hand 2008-10-25
  • 打赏
  • 举报
回复
在等!!
frank_ll 2008-10-25
  • 打赏
  • 举报
回复
没试过,不过楼主的方案可行
帮顶

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧