01-算法简介
數(shù)據(jù)結(jié)構(gòu)和算法
基于《算法圖解》—Aditya Bhargava和《數(shù)據(jù)結(jié)構(gòu)》—嚴(yán)蔚敏
**
算法圖解:(基于Python)*
第1章—算法簡介
1.1 引言
算法是一組完成任務(wù)的指令。
1.2 二分查找(binary_search)
二分查找是一種算法,其輸入是一個有序列表(必須有序)。如果要查找的元素包含在列表中,二分查找返回其位置;否則返回null。
1.2.1 普通查找和二分查找
例子:猜數(shù)字游戲
簡單查找每次只能排除一個數(shù)字;而使用二分查找時,猜測的是中間的數(shù)字,從而每次都將余下的數(shù)字排除一半。一般而言,對于包含n個元素的列表,使用二分查找最多需要log n (默認2為底)步,而簡單查找最多需要n步。
1.3 大O表示法
大O表示法是一種特殊的表示法,指出了算法的速度有多快。
二分查找和簡單查找的運行時間的增速不同:隨著元素數(shù)量的增加,二分查找需要的額外時間并不多,而簡單查找需要的額外時間卻很多。
大O表示法指出了最糟糕情況下的運行時間。
一些常見的大O運行時間:
啟示:
- 算法的速度指的并非時間,而是操作數(shù)的增加。
- 談?wù)撍惴ǖ乃俣葧r,我們說的是隨著輸入的增加,其運行時間將以什么樣的速度增加。
- 算法的運行時間用大O表示法表示。
- O(log n)比O(n)快,當(dāng)需要搜索的元素越多時,前者比后者快得越多。
——持續(xù)修改完善中…
總結(jié)
- 上一篇: 高考成绩接近满分,却被清华北大拒绝,被称
- 下一篇: 02-选择排序