社区
C++ 语言
帖子详情
怎样在程序中尽量少用循环语句,特别是FOR语句?
skhunter
2003-12-12 05:57:02
我是用PB编程的,在遇到大型数据库的时候,如果在信息量很大的话,使用FOR循环就会使程序运行的很慢,而客户是很挑剔的,总是要我给程序加速,可我又没有办法.
这几天用C++做底层程序的时候又遇到这个问题,大量的FOR循环降低了程序的运行速度,请问有高手知道怎样避免这个问题吗?
...全文
265
16
打赏
收藏
怎样在程序中尽量少用循环语句,特别是FOR语句?
我是用PB编程的,在遇到大型数据库的时候,如果在信息量很大的话,使用FOR循环就会使程序运行的很慢,而客户是很挑剔的,总是要我给程序加速,可我又没有办法. 这几天用C++做底层程序的时候又遇到这个问题,大量的FOR循环降低了程序的运行速度,请问有高手知道怎样避免这个问题吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyr311
2003-12-14
打赏
举报
回复
分配高维数组的问题--》一个容易忽略的角落。用非循环的方法分配,免得大量的循环和大量的调用函数。
fefang2003
2003-12-14
打赏
举报
回复
是算法问题
短歌如风
2003-12-14
打赏
举报
回复
最关键的还是在算法上进行优化。比如如果你要再两组数据中寻找交集,直接操作的时间复杂度是O(N^2),但如果先排序然后再操作,总的时间复杂度就变成了O(N*Log(N)),这样在N很大时效果会非常明显。
smalltalk
2003-12-13
打赏
举报
回复
如果循环必不可少,可以考虑将循环你调用的函数改成inline 方式,这将有利于提高效率。
晨星
2003-12-13
打赏
举报
回复
还有,通常显示一个进程条会让用户稍微耐心一些。:)
晨星
2003-12-13
打赏
举报
回复
同意,不是循环的问题,通常有两种可能:
(1)你的流程设计(即算法)有问题,比如循环内外设置不合理,过多的重复计算等等。
(2)你要执行的任务过于复杂,已经没有什么优化的余地了。
liangshixing
2003-12-13
打赏
举报
回复
用goto吧
vcforever
2003-12-13
打赏
举报
回复
循环是不可避免的,我想应该是你在循环中处理数据的算法有问题!
优化一下你的算法!
lijun2044
2003-12-13
打赏
举报
回复
循环次数大的外循环放在内循环!
循环次数小的外循环放在外循环!
gernal_dn
2003-12-13
打赏
举报
回复
大量的FOR循环降低了程序的运行速度?
匪夷所思!!!
应该是算法的问题!
ilovedonny
2003-12-13
打赏
举报
回复
楼上的好主意,呵呵~
md2d
2003-12-13
打赏
举报
回复
如果是底层程序的话,看看是否在循环中过多和过平凡的访问了系统资源(如:外部设备,数据库连接等)
TinyAnt
2003-12-12
打赏
举报
回复
plainsong说得对,关键不是避免for循环,而是让for循环尽量快点,比如:
a = 100;
for (int i=0;i<100;i++)
{
b = myFun(a) * i;
......
}
写成:
a = myFun(100);
for (int i=0;i<100;i++)
{
b = a * i;
......
}
这样可以避免100次调用myFun(int)所产生的CPU时间浪费
cpsoft
2003-12-12
打赏
举报
回复
再看看有没有可以合并的循环
短歌如风
2003-12-12
打赏
举报
回复
>大量的FOR循环降低了程序的运行速度
检查你的算法。如果从算法上无法优化,循环是不可能去除的,只能想办法加快循环中的代码的性能了。看看有没有重复计算的内容,放到循环外;检查循环次数看能不能减少等。
skywarship
2003-12-12
打赏
举报
回复
专门开一个线程来执行功能,主线程处理界面,这样可以及时将处理结果反馈到用户
在3条
循环语句
中
,
for语句
最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定、但给出了循环继续条件的情况。
在案例5.1
中
,求1到100的累计和,可以使用如下
for语句
: ```c for(i=1; i; i++) { sum += i; } ``` 这里,i被初始化为1,每次循环i递增1,当i大于100时循环结束。 5.3 while语句 while语句适用于循环次数不确定,...
2023-4-8-笔记-第一阶段-第2节-分支
循环语句
- 4.goto语句 5.本章完 -2024.12.15
在C语言编程的学习过程
中
,分支和
循环语句
是控制
程序
流程的关键结构。掌握这些结构对于编写灵活多变的
程序
至关重要。以下是从标题和描述
中
提炼出的关于分支
循环语句
、goto语句的详细知识点。 分支语句主要是通过...
C语言的
循环语句
.pdf
在C语言
中
,
循环语句
是编程
中
非常关键的一部分,它允许
程序
重复执行一段代码,直到特定条件不再满足。循环结构通常包括四个部分:初始化、判断、循环体和迭代。初始化部分通常设置循环变量,比如`i`, `j`, `k`,用于...
c语言-08-使用goto语句从循环
中
跳出.rar
C语言
中
的goto语句是一个非常基础且强大的控制流程语句,它允许
程序
的执行流程无条件地跳转到
程序
中
与该语句在同一函数内的标签处。虽然goto语句的使用在现代编程
中
通常不被推荐,因为它可能会导致代码难以阅读和...
单片机C语言
中
的空语句.doc
2. 在 for
循环语句
中
,尽量采用变量减减来做循环。 3. 在 do…while,while 语句
中
,循环体内变量也采用减减方法。 例如,unsigned char I;for(i=0;i;i++); 或 unsigned char I;for(i=255;i>0;i--); 这两个循环...
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章