1,生活中的數(shù)據(jù)結(jié)構(gòu)
??前面我們提了一下生活中的數(shù)據(jù)結(jié)構(gòu):圖書的擺放,為了更加方便的插入和搜索書籍,需要合理的組織數(shù)據(jù),并且通過更加高效的算法插入和查詢數(shù)據(jù),
??除了這些生活中還有很多案例比如快遞員的快遞:上大學(xué)期間不知道大家有沒有收過快遞呢,大學(xué)的快遞通常情況不是送到宿舍的,而是放在某個固定的地方,讓大家自己去拿,當(dāng)你跑到固定的地方拿快遞??爝f管理員一般會將全部的快遞按照物流公司做好分類,然后按照快遞到達(dá)日期再次進(jìn)行細(xì)分,這樣的話就很容易找到相應(yīng)的快遞了
結(jié)論:合理的組織數(shù)據(jù)對于我們獲取數(shù)據(jù)效率的重要性至關(guān)重要
1,生活中的算法
??比如現(xiàn)在有這么一個問題需要解決:北京到上海之間有一座高架橋,高架線的長度是1000000米,有一天高架線其中一處出現(xiàn)了故障導(dǎo)致不能正常工作,但是又不確定具體再哪里出現(xiàn)了問題
??請你想出一種算法,快速的解決這個問題,你會怎么辦呢
下面我就給出兩個解決方案看是不是和你想的一樣呢?
- 線性查找:以上海或北京為起點(diǎn)開始一米一米的逐一排查,最終一定能找出出問題的線段,這個方案比較耗時,運(yùn)氣不好的話我們需要排查1000000次,這是最壞的情況,平均需要 500000次
- 二分查找:從高架線的中心位置開始排查,首先確定問題是出在上海到中心點(diǎn)的線段內(nèi)還是出在了北京到中心點(diǎn)的線段內(nèi),這樣就可以大大縮小排查范圍,然后同樣的做法,再次排查出問題的線段,以此類推 ,以這種方式的話我們最多需要排查20次就可以找到問題所在,
結(jié)論:解決問題的辦法由很多,但是好的孫發(fā)對比于差的算法有天壤之別