| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:[求助]什么样的比较代码效率更高?
只看楼主 加入收藏
roys168
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-6-11
收藏
 问题点数:0 回复次数:7 
[求助]什么样的比较代码效率更高?
假若有2万个文件,要找出文件名相同的文件来,想请问各位朋友应该怎样编写代码才能使程序的效率更高?
搜索更多相关主题的帖子: 效率 代码 什么样 
2006-07-18 20:49
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 

算法問題


[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-19 09:19
marer
Rank: 2
等 级:新手上路
威 望:3
帖 子:928
专家分:0
注 册:2005-7-18
收藏
得分:0 
可以用二分查找法,应该效率高一些

public class 人生历程 extends Thread{public void run(){while(true){努力,努力,再努力!!;Thread.sleep(0);}}}
2006-07-19 09:20
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
链表查找的时间效率为O(N),二分法为log2N,B+ Tree为log2N,但Hash链表查找的时间效率为O(1)。

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-07-19 09:27
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
我觉得如果说文件名相同的话那么后缀就应该不同
因为一个系统索引不可能让2个文件完全相同
楼上说的二分法是内部排序和查找的问题
如果数都在内存中的话查找起来比较快
但是对于这种外文件操作起来比较麻烦
要用到外部排序的算法

方法一:
如果用一般的搜索方法就需要不停的打开关闭读入读出
要知道浪费时间最多的就是读入读出操作
目前比较科学的外部排序方法就是归并排序
楼主可以用归并排序对外文件进行排序
然后再处理起来就比较方便了
如果不排序查找起来的工作量实在不敢想象
这种方法最容易理解用起来也比较方便
但是效率还是有点低

方法二:
楼主可以考虑用树模型来处理
但是这种模型处理必须要求都是英文名
因为如果是汉字节点的话无法想象...
楼主只需要一次读取所有文件的名字
每读取一个就放到树中去
期间要自己处理读取的信息
如果2个叶子重合说明就是相同文件名
这种方法了解起来很容易
但是用到树的建立和遍历操作
如果是2万文件名实际效率也不敢肯定快袄

此号自封于2006年11月30日
2006-07-19 09:35
月夜枫华
Rank: 4
等 级:贵宾
威 望:12
帖 子:437
专家分:42
注 册:2006-1-2
收藏
得分:0 
2分法查找并不是最快的搜索方法.
若是我做,我用Hashtable,直接以文件全名为键,文件路径为值
每次判断文件的时候我判断表中是否已经有此键,因为查找算法中还是Hash算法要优于2分法

2006-07-19 16:41
roys168
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-6-11
收藏
得分:0 
你们讲得都太深了点,我刚学,看不懂。能不能麻烦各位给点代码,谢谢!

2006-07-19 22:35
roys168
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-6-11
收藏
得分:0 
自己顶上,希望有朋友给个最优算法的示例代码。

2006-07-21 22:50
快速回复:[求助]什么样的比较代码效率更高?
数据加载中...
 
   



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

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