工作也有些年限了,发现学习算法的同事真的不多,对时间复杂度只是一个模糊的概念。今天就谈谈具体能衡量的单位。
1.iOS手机1s能计算多少次呢?
写个for循环就能验证
func testTime() {
for i in 0..<2000000 {
}
print("运算完成了")
}
Test Case '-[WPALG_Tests.Test493reversePairs testTime]' passed (1.072 seconds).
结论:iOS模拟器,大约200万/s左右
2.两个常用的复杂度衡量单位:o(n2)与o(nlogn)
假如数据量在50000左右:
- o(n2)大概就是2500000000,要跑12.5s
- o(nlogn)大概就是540988,要跑0.25s
总结
- 了解时间复杂度n到底是什么,同时手机的具体运行次数,也了解nlogn与n的之间的差距。
- 对手机或电脑的计算能力有个大致了解。
网友评论