官术网_书友最值得收藏!

第2章 算法為何重要

在第1章中,我們學(xué)習(xí)了兩個(gè)基本的數(shù)據(jù)結(jié)構(gòu),還了解了選擇正確數(shù)據(jù)結(jié)構(gòu)對(duì)代碼性能的影響。即便是數(shù)組和集合這樣看起來(lái)很相似的數(shù)據(jù)結(jié)構(gòu),效率也可能有所區(qū)別。

在本章中,你會(huì)發(fā)現(xiàn),即便選定了數(shù)據(jù)結(jié)構(gòu),也還有一個(gè)重要因素影響代碼效率:合適的算法。

算法這個(gè)詞聽(tīng)起來(lái)有些復(fù)雜,其實(shí)并不然。算法就是完成特定任務(wù)所需的一組操作

即便是泡一碗麥片這樣的簡(jiǎn)單過(guò)程也是算法,因?yàn)榕蓰溒残枰凑找欢ú襟E來(lái)完成。泡麥片算法有以下4個(gè)步驟(至少對(duì)我來(lái)說(shuō)是這樣)。

(1) 拿一個(gè)碗。

(2) 把麥片倒進(jìn)碗里。

(3) 把牛奶倒進(jìn)碗里。

(4) 把勺子放進(jìn)碗里。

按照特定順序執(zhí)行這些步驟,就能享受早餐了。

對(duì)計(jì)算機(jī)來(lái)說(shuō),算法指的是計(jì)算機(jī)為完成特定任務(wù)所執(zhí)行的一組指令。寫代碼就是創(chuàng)造算法以讓計(jì)算機(jī)執(zhí)行的過(guò)程。

也可以用文字來(lái)詳細(xì)描述想讓計(jì)算機(jī)執(zhí)行的指令。本書(shū)將同時(shí)使用文字和代碼來(lái)展示不同算法的工作原理。

有時(shí),兩個(gè)不同的算法可能要完成同一項(xiàng)任務(wù)。第1章開(kāi)頭有一個(gè)例子,介紹了兩種打印偶數(shù)的方法,其中一種需要的步驟數(shù)是另一種的兩倍。

本章會(huì)介紹另外兩個(gè)解決相同問(wèn)題的算法。然而這一次,一個(gè)算法會(huì)比另外一個(gè)快一個(gè)數(shù)量級(jí)

在探索這兩個(gè)新算法前,先來(lái)看一個(gè)新的數(shù)據(jù)結(jié)構(gòu)。

主站蜘蛛池模板: 铜梁县| 清水河县| 巩义市| 沈丘县| 财经| 鹿邑县| 库伦旗| 聂拉木县| 崇阳县| 格尔木市| 辉县市| 琼海市| 赞皇县| 麻城市| 子洲县| 湘西| 阜康市| 太保市| 大洼县| 聂荣县| 临漳县| 樟树市| 双流县| 柘城县| 余姚市| 商都县| 稻城县| 呈贡县| 温宿县| 长子县| 松原市| 阜南县| 莱芜市| 南漳县| 崇义县| 汪清县| 二手房| 邵东县| 鸡泽县| 池州市| 岐山县|