浅谈如何提高代码执行速度 您所在的位置:网站首页 写代码太慢 浅谈如何提高代码执行速度

浅谈如何提高代码执行速度

2024-04-18 20:28| 来源: 网络整理| 查看: 265

这一节我们来谈谈如何提高代码的执行速度,评价一个代码的好坏有很多方面,比如程序执行速度,健壮型,占用内存大小等等,其中最重要的还是执行速度,试想一下,你写的一个代码,执行要几分钟,别人写的同样的功能,几秒就出结果了,孰好孰坏,一目了然。

诚然,如何写一个执行速度很快的代码,其实是很考验编写代码的人的代码知识功底,比如要学好数据结构与算法,了解计算机底层工作原理。本文不打算深究,只从以下几个浅显方面举例来说明如何提高代码速度。

1:编写高效的算法

有时候代码执行速度太慢,可能是因为我们写的算法本生就是低效的,以下一个斐波那契数列为例说明不同算法对程序执行速度的差别。

斐波那契数列是指:数列中的每一项,都是前面两项的和,其中第一项和第二项都等于1。现在我们编写一个程序来求任意一项的值。

我们很容易用递归法写出如下的代码:

#递归法求解斐波那契数列 def f(n): if n==1 or n==2: return 1 else: return f(n-1) + f(n-2) a=time.time() f(30) b=time.time() print("用时:") print(b-a)

程序输出执行时间为:0.1196秒,了解熟悉递归法的同学们看到上面代码可能就会很容易知道,上面的递归法求解数列中的一项时,其实程序在执行时候有很多重复次数,比如计算f(6),

f(6)=f(5)+f(4),而f(5)=f(4)+f(3),这里面计算了一次f(4),而后面的f(4)又要再计算一次而且随着n的增大,重复的次数更多,而且还容易有溢栈的可能。

下面我们用类似动态规划法的算法来求解他,每次算出一项,即保存在一个数组里,求解时,如果数组里面有这个值,直接取出,没有的话,才去计算,代码如下:

def f(n,a): if n==1 or n==2: return 1 else: if a[n]==0: temp=f(n-1,a) + f(n-2,a) a[n]=temp return a[n] temp=[0 for i in range(50)] a=time.time() f(30,temp) b=time.time() print("用时:") print(b-a)

程序输出执行时间为0.0000169秒,几乎可以忽略不计,所以一个高效的算法会给程序带来很大的便利。

2:利用语言的关键字

一下以c语言为例子来讲解,考虑下面这样一个简单的循环:

int i; for (int i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有