ywrby

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

原文链接

程序运行时间计时器

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. 对于给定的输入,判断这些操作的执行频率
描述 增长数量级 典型的代码 说明 举例
常数级别 1 a=b+c; 普通语句 将两个数相加
对数级别 logN 二分策略 二分查找
线性级别 N for循环 循环 找出最大元素
线性对数级别 NlogN 自上而下的归并排序 分治 归并排序
平方级别 N^2 双层循环 双层循环 检查所有元素对
立方级别 N^3 三层循环 三层循环 检查所有三元组
指数级别 2^N 穷举查找 检查所有子集
posted on 2020-04-05 18:33  ywrby  阅读(172)  评论(0编辑  收藏  举报