作者cyBochu (Fathome)
标题Re: [问题] C语言题目请益
时间Wed Sep 12 20:47:46 2018
※ 引述《SocketAM2 (AM2)》之铭言:
: 1. leftBound只是常数,且每次回圈都用在判断,这可以改善
: 2. inner loop中的image[yi+c][b_next]
: 2.1 b_next未宣告
: 2.2 c的值没有保护跨界提取
: 3. score > 200的条件可以提到最前面检查一次就好(甚至caller自己该处理),这个200和leftBound的2都可以#define constant
: 4. outer loop中第一个if成立的话,如果条件不符合可以直接break出去接return False,因为下一个b一定是break
: 以上能“优化”的效果很可能难易被人察觉或造成有意义的差别...
: 你要不要说下想做什麽
: 考虑到上面第二点,我猜实际的问题可能不是优化
: 程式的正确性也许需要先确认一下
: 例如byte * * image就不太像典型的存放影像pixel值的方式
: 另外,如果你要算的图是拍来的要更小心...
: 小的是低手,请高手尽量鞭
--------------------------------------------------------------------
根据其他人的留言,我再补充
优化方向
主要是希望能优化"程式"执行的速度
或是记忆体能用的比较少这部分
感谢各位参与讨论的人
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.152.122
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1536756469.A.7A6.html
1F:推 Schottky: 问题是你没代没事为何要优化 09/13 00:05
2F:→ Schottky: 有遇到记忆体不足或执行速度过慢的障碍吗? 09/13 00:10
3F:→ cphe: 作业楼上不用太认真 09/13 02:32
4F:推 Schottky: 楼上,我倒觉得应该没人会出这麽蠢的作业... 09/13 07:34
5F:→ Schottky: 我也觉得1.应该先探讨正确性2.讲解一下这段程式的目的 09/13 07:35
6F:推 Schottky: 再仔细看看,整个程式错得很离谱,永远不会return TRUE 09/13 07:41
7F:→ Schottky: 那我建议最快的方法是不要做任何运算直接return FALSE 09/13 07:42
8F:→ Schottky: 我真是太聪明了 09/13 07:42
9F:→ cphe: 其实贴个程式码连自己想法什麽都没交代我就当成是作业啦 09/13 08:39
10F:→ cphe: 要不要理当然看个人了 09/13 08:39
12F:→ sarafciel: 比起学程式码 我建议你先学会发问 09/13 09:03
13F:嘘 MOONRAKER: Smells like homework. 09/13 11:15
14F:→ dmeiki: 1. Loop Unrolling 2. Improve temporal locality 09/13 11:18