码迷,mamicode.com
首页 > 其他好文 > 详细

对上学期学习的总结及代码优化

时间:2021-03-10 13:23:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:const   基础   int   roman   相关   style   包含   实践   数据结构   

博客介绍:

本文是对大二上学期通过学习过数据结构,时间复杂度,等只是后对曾经学习过的简单运算逻辑,算法进行优化。本人的编程能力有限,仅在基础之上作出浅薄的修改。

 

(一)、避免不必要的整数除法

 

  整数除法是整数运算中最慢的,所以应该尽可能避免。一种可能减少整数除法的地方是连除,这里除法可以由乘法代替。这个替换的副作用是有可能在算乘积时会溢出,所以只能在一定范围的除法中使

初学时候的代码:                      推荐的代码:

 

int ijkm;                   int i, j, k, m;

 

m = i / j / k;                          m = i / (j * k); 

 

(二)、while循环和dowhile循环

 

while循环时有以下两种循环形式:

 

unsigned int i;                         或:

 

    i=0;               unsigned int i;

 

    while (i<1000)              i=1000;

 

    {                                                        do

 

        i++;                                                {               

                                      i- -;

 

    }                                                        }

 

                  while (i>0);

 

在这两种循环中,使用dowhile循环编译后生成的代码的长度短于while循环。 

 

 

 

           

(三)、循环嵌套

把相关循环放到一个循环里,也会加快速度。

初学代码:

for (i = 0; i < MAX; i++)     

    for (j = 0; j < MAX; j++)

        a[i][j] = 0.0;

    for (i = 0; i < MAX; i++)      

        a[i][i] = 1.0;

新代码:

for (i = 0; i < MAX; i++)      

{

    for (j = 0; j < MAX; j++)

        a[i][j] = 0.0;

    a[i][i] = 1.0;                           

 

 

)、提升循环的性能

要提升循环的性能,减少多余的常量计算非常有用(比如,不随循环变化的计算)。

不好的代码(for()中包含不变的if())

for( i 。。。 )

{

  if( CONSTANT0 )

  {

    DoWork0( i )// 假设这里不改变CONSTANT0的值

  }

  else

  {

    DoWork1( i )// 假设这里不改变CONSTANT0的值

  }

}

推荐的代码:

if( CONSTANT0 )

{

  for( i 。。。 )

  {

    DoWork0( i )

  }

}

else

{

  for( i 。。。 )

  {

    DoWork1( i )

  }

}  

如果已经知道if()的值,这样可以避免重复计算。虽然不好的代码中的分支可以简单地预测,但是由于推荐的代码在进入循环前分支已经确定,就可以减少对分支预测的依赖。

 

学习心得:第一次上机课,王老师告诉了我们实践对每个计算机工作者的重要性,我也第一次意识到自己对知识的灵活运用还远远不够。这一周在老师的指引下复习了

数据结构,c语言,c++等语言与算法。也在网上自主学习了一些代码改进的技巧。相信在以后的学习与运用中会有很大的提升与帮助。

 

 

 

 

对上学期学习的总结及代码优化

标签:const   基础   int   roman   相关   style   包含   实践   数据结构   

原文地址:https://www.cnblogs.com/zxyayx1314/p/14508889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!