美文网首页
算法的基础知识

算法的基础知识

作者: 阿木Robert | 来源:发表于2021-11-29 14:32 被阅读0次

时间复杂度:用于评估执行程序所消耗的时间,可以估算出程序对处理器的使用程度。

时间频度:算法中的语句执行次数称为时间频度,记作 T(n)

如果存在某个函数 f(n),使得当 n 趋于无穷大时,T(n)/f(n) 的极限值是不为零的常数,那么 f(n) 是 T(n) 的同数量级函数,记作 T(n)=O(f(n)),称 O(f(n)) 为算法的渐进时间复杂度,简称为时间复杂度。

常见的时间复杂度有:O(1) 常数型;O(log n) 对数型,O(n) 线性型,O(nlog n) 线性对数型,O(n2) 平方型,O(n3) 立方型,O(nk)k 次方型,O(2n) 指数型。

如何推导时间复杂度

求解算法复杂度一般分以下几个步骤:

找出算法中的基本语句:算法中执行次数最多的语句就是基本语句,通常是最内层循环的循环体。

计算基本语句的执行次数的数量级:只需计算基本语句执行次数的数量级,即只要保证函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,使注意力集中在最重要的一点上:增长率。

用大Ο表示算法的时间性能:将基本语句执行次数的数量级放入大Ο记号中。

其中用大 O 表示法通常有三种规则:

用常数 1 取代运行时间中的所有加法常数;

只保留时间函数中的最高阶项;

如果最高阶项存在,则省去最高阶项前面的系数;

空间复杂度:用于评估执行程序所占用的内存空间,可以估算出程序对计算机内存的使用程度。

存储空间通常包括:指令空间(即代码空间)、数据空间(常量、简单变量)等所占的固定部分和动态分配、递归栈所需的可变空间。

相关文章

  • python学习笔记(一)基础知识

    个人笔记 仅供参考 一、基础知识 本文主要介绍python开始学习应该掌握的一些基础知识。 1、算法 算法即解决一...

  • 算法导论:概率分析和随机算法

    参考资料:概率分析和随机算法雇佣问题在讲述概率分析和随机算法之前,需要先简单介绍一下,概率论的基础知识 基础知识 ...

  • Python算法

    注:采转归档,自己学习查询使用 Python算法:基础知识Python算法:Counting 101Python算...

  • 【算法】算法基础知识

    什么是算法? 算法就是解决一个问题的逻辑套路,如:菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法。广义来...

  • 待学习总结

    区块链协议、加密技术、共识算法、智能合约等基础知识

  • Android 面试回顾

    1安卓基础知识 2JAVA基础知识 3算法和数据结构 4职业发展规划相关问题 安卓基础知识 1Activity 任...

  • 《算法导论》(第三版)目录

    算法导论(第三版) 第一部分 基础知识 第 1 章 算法在计算中的应用 1.1 算法 1.2 作为一种技术的算法 ...

  • LeetCode刷题实战1:在数组上遍历出花样

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力...

  • 阿里已黄,字节称王!字节内部限时开放纯手码37W字算法面试手册

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力...

  • 排序算法概括

    排序算法作为数据结构与算法的基础知识,在实际开发中有许多的应用;当然还有更重要的一点,排序算法几乎属于面试必问的知...

网友评论

      本文标题:算法的基础知识

      本文链接:https://www.haomeiwen.com/subject/zbwgkltx.html