复杂度的学习 | 您所在的位置:网站首页 › 时间复杂度log2n记为logn › 复杂度的学习 |
对于时间复杂度和空间复杂度的学习,大致上分为了事前分析估算法和事后统计法。 而对于事后统计法,其一是对于数据的规模上,它要先依据算法编制相应的的程序并运行,其二是它太依赖环境(计算机硬件、软件),考虑这些的可能就是掩盖了算法本身所带来的优势。 而对于事前分许估算法是大多人们的选择:在编写程序前,依据统计方法对算法进行估算。一个用高级语言编写的程序在计算机上运行所消耗的时间,其决定因素主要由: 算法采用的策略、方法 编译产生的代码质量 问题的输入规模 机器执行指令的速度 时间复杂度的定义时间复杂度(time complexity)是一个函数,它定性描述一个算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O表述,不包括这个函数的低阶项和首项系数。 分析: 关注循环次数:for、while、do while 关注嵌套代码,如循环中嵌套循环 常见的时间复杂度O(1):HashMap O(logn):二叉树 O(n):for循环 O(nlogn):for循环嵌套二叉树 O(n2):for循环嵌套for循环 而时间复杂度常见的中由小到大排序: O(1) < O(log2n) < o(n) < O(nlog2n) < O(n2) < O(n3) |
CopyRight 2018-2019 实验室设备网 版权所有 |