代码性能优化

    很多时候,我们会习惯的把一大串的操作直接丢给CPU去执行,虽然CPU执行的速度的确很快,但是也不是这么浪费性能的。有很多代码可以优化的,程序员可以优化一下在让CPu执行,这样效率会快很多。

    下面我举一个简单的例子,这个例子是来自http://ninglingtao85218.blog.163.com/blog/static/17530692200782731514827/ 这个博客,感谢这位博主的分享。


  题目是:写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n

没经过优化的代码:


//没有优化过的代码
	public static long method1(long n) {

		long temp = 0;
		int i = 1, flag = 1;
		if (n <= 0) {
			System.out.println("error: n must > 0");
			return temp;
		}
		 for (i = 1; i <= n; i++)
		 {
		 temp = temp + flag * i;
		 flag = (-1) * flag;
		 }
		 return temp;
	}

数字很大的时候。


经过优化的代码:

//算法优化。CPU执行速度虽然快,但是也不是让程序员什么都不想的就让它执行
	public static long method2(long n){
		if (n <= 0) {
			System.out.println("error: n must > 0");
			return 0;
		}
		if (0 == n % 2)
			return (n / 2) * (-1);
		else
			return (n / 2) * (-1) + n;
	}



---------------------------------------------------------------------

如果这个问题在数值很大的情况下,效率差别就会很大。 第一个算法,在很大的数下面,效率太低。明显超过了正常人的等待时间。

而且优化的算法也不是很难,我们初高中做的数学题还有比这个简单的吗??


难怪一个优秀的程序员,要有优秀的数学基础。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值