log2等于多少(log2表示什么意思)

圈圈笔记 119

什么是算法

一组完成任务的指令。任何代码片段都可视为算法。

二分查找--一种简单的算法示例

对于包含n个元素的列表,一般而言,二分查找最多需要log2n步。(对数运算是幂运算的逆运算,如log10100=2。常规简写:log指log2,lg指log10,ln指loge)

二分查找仅适用于有序列表

python实现二分查找defbinary_search(list, item):low=0high=0whilelow<=high:mid=(low+high)/2guess=list[mid]ifguess==item:returnmidelifguess>item:high=mid-1else:low=mid+1returnNone测试下print(binary_search(my_list,3))结果为1print(binary_search(my_list,-1))结果为None

大O表示法

表示算法有多快。并非表示速度,而是通过操作数表示了算法运行时间的增速。

大O表示法指出了最坏情况下的运行时间。

常见的5种:

O(log n):对数时间,例如二分查找O(n):线性时间,例如简单查找O(n*log n):例如快速排序O(n²):例如选择排序O(n!):例如旅行商问题,非常慢。旅行商问题即XX要去n个城市,遍历路线找出旅程最短的路线,实际是排列组合问题

总结

1、算法的速度并非指时间,而是操作数的增速。

2、元素越多,算法性能差异越明显。元素越多,二分查找比简单查找越是快得多。

3、算法运行时间不以秒为单位,而是从增速的角度度量。

上一篇:

下一篇:

  推荐阅读

分享