1.写作初衷与目的:
这几天看了下《算法图解》这本书,正如大家所说的一样,这本书非常适合作为算法的入门教材。为了防止忘记所学的知识,这里做下读书笔记。我本身对编程挺感兴趣的,再加上想成为一个大牛级别的程序员,所以打算从零开始写自己的技术博客。
2.二分查找:
问题:从1到100以内找到一个需要的数字,最多需要多少步?
如果按照简单(傻瓜)查找的话,一个个数字按顺序去猜,那么会很消耗时间。但如果按照二分查找的话,则只需要7步。
对于包含n个元素的列表,用二分查找最多需要log2N步。
3.大O表示法:
大O表示法让你能够比较操作数,它指出了算法运行时间的增速。
3.1一些常见的大O运行时间:
1.O(log n),也叫对数时间,这样的算法包括二分查找。
2.O(n),也叫线性时间,这样的算法包括简单查找。
3.O(n*log n),这样的算法包括快速排序。
4.O(n^2),这样的算法包括选择排序。
5.O(n!),这样的算法包括旅行社问题的解决方案。
4.小结:
1.算法的速度指的并非时间,而是操作数的増速。
2.谈论算法的速度时候,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
3算法的时间并不以秒为单位。