| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 743 人关注过本帖
标题:优化代码
只看楼主 加入收藏
kocd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-7-27
收藏
得分:0 
回复 9楼 pangding
。。。我的意思好像就是请大家优化下算法,使速度能更快
当编译器通过到程序执行就是跳出黑色的框框之间的时间花费太多了。。
我举得只是例子。。
我一楼的算法中输入整型和字符型两种,我想应该是编译器在区分整型和字符间会很费力,导致很费时间
如果是你,要求是读入N个数据,N未知,要能知道数据和N,你会怎么写代码?
我想的方法就两种
1。1楼的做法
2.当作字符型全部输入后再根据空格啊,负号,数字之类的分类,这样时间可以加快一倍多,不过麻烦程度要加2,3倍多
2009-07-31 18:49
kocd
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-7-27
收藏
得分:0 
回复 10楼 hhei
我想这个不是应该花的时间。。这个算法估计是太破了,这个题目你会怎么做?
2009-07-31 18:53
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:20 
以下是引用kocd在2009-7-31 18:49的发言:

。。。我的意思好像就是请大家优化下算法,使速度能更快
当编译器通过到程序执行就是跳出黑色的框框之间的时间花费太多了。。
我举得只是例子。。
我一楼的算法中输入整型和字符型两种,我想应该是编译器在区分整型和字符间会很费力,导致很费时间
如果是你,要求是读入N个数据,N未知,要能知道数据和N,你会怎么写代码?
我想的方法就两种
1。1楼的做法
2.当作字符型全部输入后再根据空格啊,负号,数字之类的分类,这样时间可以加快一倍多,不过麻烦程度要加2,3倍多

冒黑框慢,跟编译器根本就没什么太大关系。你双击一下 我的电脑 冒白框的速度快不?在windows里初始化一个窗口就要那么多时间,这之间还要加载程序,没什么办法提高速度。还有编译完成之后,还要做很多工作,比如链接什么的。

在编译器眼中,所有源代码都是字符,它只是分析一下你写的这堆字符是什么意思。致于执行,编译器也有一定的优化能力优化你写的代码。你这个代码执行的不快可能是因为函数调用的太多了。

如果我写这个的话,就会像你第二次说的那样,全按字符读出来(读一行),然后再一个一个分析数是多少,有几个。
2009-08-01 18:01
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:0 
我的优化:
程序代码:
int a[100],i;char c=' ';
for(i=0;;i++)
  {
          if(!(cin>>a[i]))
          { 
            i--;
            break;
          }               
  }

则在输入结尾加上一个【Ctrl+Z】就可以了。
如果是读文件,遇到结尾(EOF)就会退出了。
2009-08-02 03:25
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 
以下是引用hhei在2009-7-31 10:44的发言:

有些时间是必须用的吧,避免不了的




呵,
谁说没有办法的。 其实之所以慢,是因为输入是int 类型吧, 如果把它当成字符型这样就快了,

char *c_p = "12 4 5 679  646 4 "
写一个转换函数, 把字符转换来int类型。
空格处理啊,
就差不多了。
2009-08-02 21:49
快速回复:优化代码
数据加载中...
 
   



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

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