当前位置: 首页 > news >正文

《C++》解密--算法复杂度

要正式开通C++博客之路啦!!

一、数据结构

1、数据结构定义

           数据结构 是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元         素的集合。

2、算法定义

           算法 就是定义良好的计算过程,他取一个或一组的值为输入,并产生一个或一组值作为输          出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。

3、数据结构书籍

二、算法效率

1、复杂度的概念

       衡量一个算法的好坏,一般是从时间和空间两个维度来衡量,即时间复杂度和空间复杂度。

      时间复杂度主要衡量一个算法的运行快慢;

      空间复杂度主要衡量一个算法运行所需要的额外空间。

三、时间复杂度

   定义:在计算机科学中,算法的时间复杂度是一个函数式 T(N) ,它定量描述了该算法的运行时间。

【因为程序运行的时间和编译环境、配置等因素都有关系,在同样机器下运行时间不同,我们一般不计算程序的运行时间(不确定性)作为衡量时间复杂度的标准。】

T(N) 这个函数式计算了程序的执行次数,执行次数就可以代表程序时间效率的优劣。

1、例题一

2、大O的渐进表示法--计算规则

【我们只需要计算程序能代表增长量级的大概执行次数,                                                                       复杂度的表示通常使用大O的渐进表示法。  】

3、例题

示例1

示例2

示例3

示例4

4的小结

示例5

示例6

四、空间复杂度

1、定义

空间复杂度也是一个数学表达式,是对一个算法在运行过程中因为算法的需要额外临时开辟的空间

   【函数运行时所需要的栈空间(储存参数、局部变量、一些寄存器信息等)在编译时期已确定好         了,因此空间复杂度主要通过函数在运行时候显示申请的额外空间来确定。

2、计算规则

【空间复杂度计算规则与时间复杂度类似,也使用大O渐进表示法

3、例题

【示例1】

【示例2】

五、常见复杂度对比

六、复杂度算法例题

【方案1】

【方案2】

未完待续啦....


http://www.mrgr.cn/news/23946.html

相关文章:

  • HTML5+CSS+JS制作中秋佳节页面
  • redis的基础数据结构-list列表
  • 0. 阿里大模型API获取步骤
  • LVGL 控件之线条(lv_line)
  • TwinCAT3 实时核中ADS实现C++ server、clinet数据传输
  • 【MADRL】反事实多智能体策略梯度法(COMA)算法
  • StarRocks 培训课程重磅上线!专家出品,助你升级打怪不走弯路!
  • 枚举,LeetCode 2552. 统计上升四元组
  • day-52 下一个排列
  • 向量——通俗地解释
  • 【Qt】Qt音频
  • ECOLOGY携带BearerToken后根据手机号码获取北森系统人员id
  • 数学建模笔记—— 多目标规划
  • 覆盖索引是什么意思?
  • 9.10总结
  • day10-配置文件日志多线程
  • 迟滞比较器/施密特触发器
  • Switch分支结构的细节
  • Python3中函数的用法
  • man命令学习记录