> 技术文档 > 02-算法

02-算法


1. 算法概念

算法: 一系列的步骤, 能够将输入的数据转换为输出结果, 表现在代码层面通常是一段代码~

2. 算法好坏的度量

2.1. 时间复杂度 空间复杂度

  • 时间: 程序整个执行过程中对时间消耗的估计量级a
  • 空间: 程序运行过程中对存储资源占用的估计数量

2.2. 大O表示法 -> 最差表示法

  1. 时间复杂度函数式 T (N) 中,只保留最高阶项,去掉那些低阶项
  2. 如果最⾼阶项存在且不是 1 ,则去除这个项⽬的常数系数
  3. T (N) 中如果没有 N 相关的项⽬,只有常数项,⽤常数 1 取代所有加法常数。

注: 递归求阶数空间复杂度大O表示法: 单次递归空间复杂度 * 递归次数

2.3. 竞赛中的时限和空限

  • 时间限制: 信息学竞赛中,C++ 通常设定 1 到 2 秒的时间限制,要控制运行次数在 10^710^8 之间。
  • 空间限制: 128MB~256MB, int arr[3*10^7], int arr[5000][5000]