算法的时间复杂度

什么是时间复杂度?

算法的时间复杂度是算法的执行效率

算法的执行时间和算法输入值之间的关系,与函数中代码的执行次数有关。

常见的时间复杂度案例分析:

O(1) 算法的执行时间和输入值无关

O(logn) 算法的执行时间和代码的执行次数呈log对数正比关系

O(n) 算法的执行时间和代码的执行次数有关,与函数输入值有关

O(nlogn)

O(n**2)

O(1):常数时间复杂度

  • 描述:算法的执行时间与输入规模无关,无论输入规模如何,执行时间都是固定的。

  • 示例:访问数组的某个特定索引位置。无论数组的长度是多少,访问操作的时间都是相同的。

O(log n):对数时间复杂度

  • 描述:算法的执行时间与输入规模的对数成正比。通常出现在每次操作都能将问题规模减半的算法中。

  • 示例:二分查找。每次比较后,搜索范围减半,因此执行次数与输入规模的对数成正比。例如,二分查找的时间复杂度为 O(log2​n),适用于静态、排序好的数组。

O(n):线性时间复杂度

  • 描述:算法的执行时间与输入规模成正比。输入规模越大,执行时间越长。

  • 示例:遍历数组或列表。需要逐个检查每个元素,因此执行次数与输入规模直接相关。例如,线性搜索的时间复杂度为 O(n),适用于未排序的数据。

O(n log n):线性对数时间复杂度

  • 描述:算法的执行时间与输入规模 n 和 n 的对数的乘积成正比。这种时间复杂度通常出现在分而治之的算法中。

  • 示例:快速排序和归并排序。这些排序算法通过将问题分解为更小的子问题来解决,每个子问题的规模大约是原问题的一半,因此总执行时间与 nlogn 成正比。

O(n²):平方时间复杂度

  • 描述:算法的执行时间与输入规模 n 的平方成正比。这种时间复杂度通常出现在嵌套循环的算法中,其中每个循环都遍历整个输入。

  • 示例:冒泡排序和选择排序。这些排序算法通过比较和交换相邻元素来排序,需要两层嵌套循环,因此总执行时间与 n2 成正比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值