XJL's Blog

保持乐观、单纯。 要开心。

爱家人朋友,爱猫咪,爱学习。


时间复杂度

T(n) = O(f(n))
T(n) 标识代码执行时间;
n 表示数据规模的大小;
f(n) 表示每行代码执行的次数总和;
O 表示代码的执行时间T(n)与f(n)表达式成正比。
大O主要表示代码执行时间随数据规模增长的变化趋势。

时间复杂度的分析Tips

  • 只关注循环执行次数最多的一段代码
  • 加法规则:总复杂度等于量级最大的那段代码的复杂度
  • 乘法规则:嵌套代码的复杂度等于前套内外代码复杂度的乘积

几种常见的时间复杂度量级(按数量级递增)

  • 常量阶 O(1)
  • 对数阶 O(logn)
  • 线性阶 O(n)
  • 线性对数阶 O(nlogn)
  • 平方阶 O(n2) 、立方阶O(n3) 、k次方阶O(nk)
  • 指数阶 O(2n)
  • 阶乘阶 O(n!)

空间复杂度

空间复杂度全称就是渐进空间复杂度(asymptotic space complexity),表示算法的存储空间与数据规模之间的增长关系。

最近的文章

Android 知识点汇总

知识点1:Android 开发过程中版本适配:Android 4.4:uri转path需要适配。Android 5.0适配:分包适配 -〉在5.0及以上在app的gradle文件中配置multiDexEnabled true即可,但是5.0以下需要倒入jar,然后在Application的attch方法中进行初始化。###Android 6.0适配:动态权限处理。Android 7.0适配: Uri.fromFile()适配:使用FileProvider适配。 出于...…

继续阅读
更早的文章

Android Jetpack 使用入门

Jetpack简介Jetpack是谷歌在Google I/O 大会上推出的帮助Android 开发者快速开发出优质应用的组件,下面内容是节选自Android Developer官网的介绍:Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。Jetpack 包含与平台 API 解除捆绑的androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Androi...…

继续阅读