网站首页 > 技术文章 正文
时间复杂度主要是为了反映函数的执行时间随着输入规模增长而变化的规律,在一定程度上可以体现程序的执行效率和算法的优劣。作为程序员,掌握基本的算法时间复杂度的计算是很有必要的。
理论上,执行一个算法消耗的时间,是无法精确计算的,即使上机测试,受到各种因素影响,得到的时间也可能有较大差别。对于程序员,我们只需关注哪个算法花费的时间多,哪个算法花费的时间少就可以了。
下面我通过代码给大家说明时间复杂
function test(n) {
let a = n + 20; // 执行 1 次
return a; // 执行 1 次
}
通过上面的 我们可以看出他的执行次数是2次,也就是说不管我们的n传递的是几都是2次对于这种情况我们可以说他的时间复杂度为O(1)
function test(n) {
for(int i = 0; i < n; i++) { // 执行 n 次
console.log (n); // 执行 n 次
}
}
通过上面的 我们可以看出他的执行次数是2N次,随着我们传递的N 的不一样 次数也会发生变化,对于这种情况 ,忽略和最高阶相乘的常数2,我们通过定义他的时间复杂度为O(N)
function test( n) {
for(int i = 0; i < n; i++) { // 执行n次
for(int j = 0; j < n; j++) { //由于外层循环,该语句执行 n * n 次
console.log("Hello"); // 同理,执行n*n次
}
}
}
通过上面的 我们可以看出他的执行次数是n + n^2 + n^2 忽略低阶项,和高阶项的常数部分,得到时间复杂度O(n^2)
function test( n) {
for(int i = 0; i < n; i = i* 2) { // i=2,4,8,16...时执行,可通过对数近似计算次数,执行log2(n)了
console.log("Hello");//log2(n)
}
}
通过上面的 我们可以看出他的执行次数是2log2(n)忽略低阶项,和高阶项的常数部分,得到时间复杂度O(log2(n))
总结
计算时间复杂度时,可以先先计算 总次数,然后忽略常数项,只保留最高次项,同时忽略最高项的系数,得到函数 f(n),则算法的时间复杂度就是 O(f(n))。
作为一个软件开发人员我们一定要学会快速评估算法的复杂度。欢迎关注,评论区留言, 私信 都可以。我们一起解决开发中遇见的问题。
- 上一篇: 算法的时间复杂度如何影响程序性能?
- 下一篇: 二、复杂度分析 — 算法效率评估 算法复杂度的分析方法
猜你喜欢
- 2024-10-28 怎么判断一个算法的“好坏”程度——时间复杂度的计算
- 2024-10-28 递归算法的时间复杂度 递归算法时间复杂度计算
- 2024-10-28 从头开始学算法-算法复杂度分析 算法复杂度的方法
- 2024-10-28 「图解算法数据结构」——空间复杂度
- 2024-10-28 第002讲:算法与时间复杂度的基本概念
- 2024-10-28 算法分析:算法的评价因素、时间复杂度及空间复杂度#知识分享
- 2024-10-28 代码的圈复杂度 代码圈复杂度如何计算
- 2024-10-28 十大排序算法时空复杂度 十大排序算法时空复杂度怎么算
- 2024-10-28 二、复杂度分析 — 算法效率评估 算法复杂度的分析方法
- 2024-10-28 算法的时间复杂度如何影响程序性能?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)