如何表示算法的效率?初识大O表示
我们在比较算法的时候经常说 算法1 比 算法2 快 2倍 之类的话,但实际上类似这种说法不具有说服力。 因为当数据的个数发生变化时,对应的比例可能也会发生改变,有可能 当数据为10个时,算法1比算法2快2倍,但是当数据为100时,算法1有可能比算法2快3倍。因此需要一个用来描述算法的效率与数据个数 之间关系的东西----大O表示 Order of 大约是....
探索算法的效率
N 表示数据项个数
K 表示常数
T 表示时间
1.无序数组的插入一个数据的时间为 一个常数 T=K ,因为数据项总是放在空闲的位置,一次插入足够了。
2.线性查找 :与 N 成正比 T = K * N
3.二分查找 : T = K*log(N)
以上算法 用 大O 表示为:
1.O(1)
2.O(N)
3.O(log(N))
可以理解为 O(1) 为优秀 O(logN) 为良好 O(N) 为一般
通过上面的比较 可以了解到 无序数组的插入是优秀的,但是查找是一般的,有序数组的二分查找为良好的,但是插入是一般的,无论有序还是无序 删除都是一般的 。
————————————————————
原文:https://blog.csdn.net/qq_31408331/article/details/79967079