[Java]-算法分析

原文链接

程序运行时间计时器

package cn.ywrby.tools;

public class Stopwatch {
	private final long start;

	public Stopwatch() {
		start = System.currentTimeMillis();
	}

	public double elapsedTime() {
		long now = System.currentTimeMillis();
		return (now - start) / 1000.0;
	}

	public static void main(String[] args) {
		Stopwatch watch = new Stopwatch();
		for (int i = 0; i < 1000; i++) {
			System.out.println("helloworld!");
		}
		double time = watch.elapsedTime();
		System.out.println(time);
		// TODO 自动生成的方法存根

	}

}

增长数量级概念的应用使我们能够进一步将程序和实现它的算法隔离

对于大多数模型,其运行时间的数学模型确定步骤如下:

  1. 确定输入模型,定义问题规模
  2. 识别内循环
  3. 根据内循环中的操作确定成本模型
  4. 对于给定的输入,判断这些操作的执行频率
描述增长数量级典型的代码说明举例
常数级别1a=b+c;普通语句将两个数相加
对数级别logN二分策略二分查找
线性级别Nfor循环循环找出最大元素
线性对数级别NlogN自上而下的归并排序分治归并排序
平方级别N^2双层循环双层循环检查所有元素对
立方级别N^3三层循环三层循环检查所有三元组
指数级别2^N穷举查找检查所有子集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值