《Python算法的奇妙之旅》結(jié)合Python語(yǔ)言,從基礎(chǔ)算法講起,逐步深入6種常用算法思想,每種算法思想都佐以大量生動(dòng)有趣的案例,讓讀者在學(xué)習(xí)Python語(yǔ)法及算法的同時(shí),意識(shí)到算法的重要性,繼而對(duì)算法產(chǎn)生濃厚的興趣。
《Python算法的奇妙之旅》共11章,分為2篇。第1篇基礎(chǔ)知識(shí),主要介紹Python、算法、數(shù)據(jù)結(jié)構(gòu)、時(shí)間復(fù)雜度和空間復(fù)雜度等關(guān)鍵的基礎(chǔ)概念,以及十大排序算法,讓讀者對(duì)算法有一個(gè)初步的了解;第2篇開(kāi)始算法之旅,結(jié)合40多個(gè)典型案例及其對(duì)應(yīng)的100多種解題思路與方法,介紹遍歷法、迭代法、遞歸法、回溯法、貪心法和分治法6種算法思想,涉及算法的基本思想、關(guān)鍵特征、解題步驟和框架等。
《Python算法的奇妙之旅》內(nèi)容通俗易懂,案例豐富,實(shí)用性強(qiáng),特別適合對(duì)Python語(yǔ)言和算法感興趣的入門(mén)與進(jìn)階讀者閱讀,也適合C、C 、Java和PHP程序員及其他編程愛(ài)好者閱讀,另外還適合作為相關(guān)院校和培訓(xùn)機(jī)構(gòu)的教材。
40多個(gè)典型案例、100多種解題思路與方法、6種常用算法思想。
培養(yǎng)編程興趣,拓展編程思維,提高編程和算法設(shè)計(jì)能力。
每個(gè)案例都用Python語(yǔ)言實(shí)現(xiàn),專(zhuān)為算法初學(xué)者量身打造。
注重基礎(chǔ):對(duì)常用算法的概念、特征、應(yīng)用和設(shè)計(jì)策略做詳細(xì)介紹。
講解透徹:對(duì)常用算法涉及的各種數(shù)據(jù)結(jié)構(gòu)類(lèi)型進(jìn)行原理性分析。
案例豐富:用幽默風(fēng)趣的語(yǔ)言介紹40多個(gè)典型案例及涉及的算法。
趣味性強(qiáng):選取的案例趣味性強(qiáng),可以極大地提高讀者的編程興趣。
代碼詳盡:每個(gè)案例都給出詳細(xì)的代碼,并給出流程圖或示意圖。
隨著人工智能和大數(shù)據(jù)時(shí)代的到來(lái),數(shù)據(jù)分析越來(lái)越流行,自動(dòng)化迅速崛起,這帶火了得天獨(dú)厚的Python語(yǔ)言。從小型創(chuàng)業(yè)公司到如日中天的大型企業(yè),從戰(zhàn)略規(guī)劃的新興產(chǎn)業(yè)到生機(jī)勃勃的成長(zhǎng)產(chǎn)業(yè)乃至舉足輕重的支柱產(chǎn)業(yè),都對(duì)Python技術(shù)人員青睞有加。不論你所在的行業(yè)是自媒體、醫(yī)療、政務(wù)、金融還是其他新興行業(yè),也不論你從事的工作是開(kāi)發(fā)、維護(hù)、運(yùn)營(yíng)、產(chǎn)品還是其他新興崗位,你都能看到Python算法的身影。在許多互聯(lián)網(wǎng)公司中,從業(yè)人員能熟練掌握Python并融會(huì)貫通各種算法的思路,會(huì)成為他們的一個(gè)加分項(xiàng)。
目前圖書(shū)市場(chǎng)上關(guān)于Python算法的相關(guān)圖書(shū)不少,但真正從實(shí)際應(yīng)用出發(fā),通過(guò)各種算法思想和案例來(lái)指導(dǎo)讀者提高算法設(shè)計(jì)能力的圖書(shū)卻鳳毛麟角!禤ython算法的奇妙之旅》以實(shí)戰(zhàn)為主旨,通過(guò)6種常用算法思想,并佐以典型案例,幫助讀者全面、深入、透徹地掌握各種典型算法的思路和應(yīng)用,提高讀者解決實(shí)際問(wèn)題的能力。
《Python算法的奇妙之旅》特色
1.對(duì)Python算法涉及的概念和數(shù)據(jù)結(jié)構(gòu)做原理性分析
《Python算法的奇妙之旅》從一開(kāi)始便對(duì)Python算法的概念、特征、應(yīng)用和設(shè)計(jì)策略做了基本介紹,并對(duì)涉及的各種數(shù)據(jù)結(jié)構(gòu)類(lèi)型進(jìn)行原理性分析,幫助讀者夯實(shí)基礎(chǔ),為后續(xù)學(xué)習(xí)算法思想和演練典型案例打好基礎(chǔ)。
2.結(jié)合大量典型案例介紹Python熱門(mén)算法的思想
《Python算法的奇妙之旅》結(jié)合大量案例介紹排序、遍歷、迭代、遞歸、回溯、貪心和分治等熱門(mén)算法的思想,并詳解水仙花數(shù)、埃及分?jǐn)?shù)、雞兔同籠、階乘算法、輾轉(zhuǎn)相除法、斐波那契數(shù)列、漢諾塔問(wèn)題、八皇后問(wèn)題和背包問(wèn)題等典型案例的求解過(guò)程。
3.分類(lèi)驅(qū)動(dòng),邏輯性強(qiáng)
《Python算法的奇妙之旅》首先介紹十大排序算法和10種數(shù)字相關(guān)的算法,然后介紹遍歷、迭代、遞歸、回溯、貪心、分治算法思想,這些都是Python算法學(xué)習(xí)必須要掌握的知識(shí)。書(shū)中還對(duì)各類(lèi)算法的異同進(jìn)行了對(duì)比,幫助讀者對(duì)算法進(jìn)行邏輯梳理。
4.案例典型,實(shí)用性強(qiáng)
《Python算法的奇妙之旅》詳解40多個(gè)典型案例及其對(duì)應(yīng)的100多種解題思路與方法,它們均來(lái)自筆者在學(xué)習(xí)、生活和工作中的親身體驗(yàn)和奇思妙想,具有很高的應(yīng)用價(jià)值和參考性。這些案例使用不同的思想和解法組合實(shí)現(xiàn),便于讀者融會(huì)貫通地理解《Python算法的奇妙之旅》中介紹的算法,讀者對(duì)這些案例稍加修改,便可應(yīng)用于實(shí)際開(kāi)發(fā)中。
5.注釋詳細(xì),圖示豐富,容易理解
《Python算法的奇妙之旅》中的案例源代碼逐行進(jìn)行了詳細(xì)的注釋?zhuān)⒔o出流程圖或示意圖,便于讀者直觀地理解所講內(nèi)容,從而提高學(xué)習(xí)效率。
6.提供完善的技術(shù)支持和售后服務(wù)
《Python算法的奇妙之旅》提供專(zhuān)門(mén)的技術(shù)支持郵箱(hzbook2017@163.com)與微信公眾號(hào),讀者在閱讀本書(shū)的過(guò)程中若有任何疑問(wèn),可以通過(guò)郵箱或公眾號(hào)獲得幫助。
《Python算法的奇妙之旅》內(nèi)容
第1篇 基礎(chǔ)知識(shí)
本篇涵蓋第1~4章。第1~3章主要介紹Python、算法、數(shù)據(jù)結(jié)構(gòu)、時(shí)間復(fù)雜度和空間復(fù)雜度等基礎(chǔ)概念,其中涵蓋整型、布爾值、字符串、列表、元組、字典、集合等數(shù)據(jù)類(lèi)型,以及表、樹(shù)、圖等數(shù)據(jù)結(jié)構(gòu);第4章主要介紹十大排序算法,包括冒泡排序、快速排序、直接插入排序、希爾排序、簡(jiǎn)單選擇排序、堆排序、歸并排序、計(jì)數(shù)排序、桶排序和基數(shù)排序。
第2篇 開(kāi)始算法之旅
本篇涵蓋第5~11章。第5章主要介紹10種與數(shù)字相關(guān)的算法,包括素?cái)?shù)、完美數(shù)、自守?cái)?shù)、快樂(lè)數(shù)、水仙花數(shù)、埃及分?jǐn)?shù)、階乘算法、輾轉(zhuǎn)相除法、兔子序列和數(shù)獨(dú),旨在表達(dá)數(shù)字之美;第6~11章主要介紹六種常用算法思想,包括遍歷法、迭代法、遞歸法、回溯法、貪心法和分治法,涉及其基本思想、關(guān)鍵特征、解題步驟和算法框架等內(nèi)容,講解時(shí)以6種算法思想為依據(jù),列舉40多個(gè)典型案例及其對(duì)應(yīng)的100多種解題思路和方法。
《Python算法的奇妙之旅》讀者
準(zhǔn)備從事數(shù)據(jù)分析、AI和算法等工作的人員;
Python、C 、Java和PHP等程序員;
數(shù)據(jù)專(zhuān)員和數(shù)據(jù)分析工程師;
運(yùn)營(yíng)、產(chǎn)品和研發(fā)人員;
對(duì)算法有濃厚興趣和需求的人員;
廣大數(shù)學(xué)愛(ài)好者;
希望提升邏輯思維的人員;
高等學(xué)校相關(guān)專(zhuān)業(yè)的學(xué)生;
專(zhuān)業(yè)培訓(xùn)機(jī)構(gòu)的學(xué)員。
配書(shū)資源獲取方式
《Python算法的奇妙之旅》涉及的所有源代碼都需要讀者自行下載。請(qǐng)?jiān)跈C(jī)械工業(yè)出版社華章分社(www. hzbook.com)上搜索到本書(shū),然后單擊資料下載按鈕,即可在本書(shū)頁(yè)面上找到下載鏈接。
售后支持
讀者閱讀《Python算法的奇妙之旅》時(shí)若有疑問(wèn),可以發(fā)電子郵件(郵箱地址見(jiàn)前文)獲得幫助,也可以通過(guò)筆者的微信公眾號(hào)提出,筆者會(huì)不定期解答。另外,書(shū)中若有疏漏和不當(dāng)之處,也請(qǐng)讀者及時(shí)反饋,以便后期修訂。
王小川 現(xiàn)任某500強(qiáng)國(guó)有企業(yè)的數(shù)據(jù)分析兼系統(tǒng)管理工程師。有5年的數(shù)據(jù)分析和數(shù)據(jù)庫(kù)管理經(jīng)驗(yàn),擅長(zhǎng)Python爬蟲(chóng)技術(shù)和算法,以及pandas、NumPy和sklearn等第三方庫(kù),能熟練使用TensorFlow框架。主要研究方向包括數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和辦公自動(dòng)化等,對(duì)數(shù)據(jù)獲取和應(yīng)用有豐富的實(shí)戰(zhàn)經(jīng)驗(yàn)與獨(dú)到的見(jiàn)解。
前言
第1篇 基礎(chǔ)知識(shí)
第1章 概述 2
1.1 書(shū)本簡(jiǎn)介 4
1.1.1 書(shū)本涉及的內(nèi)容 4
1.1.2 書(shū)本不涉及的內(nèi)容 5
1.2 本書(shū)的優(yōu)勢(shì) 5
1.3 需要做的準(zhǔn)備工作 6
1.4 本章小結(jié) 10
第2章 何為算法 11
2.1 什么是算法 11
2.1.1 算法的概念 11
2.1.2 算法的特征 12
2.1.3 算法的應(yīng)用 12
2.1.4 算法的設(shè)計(jì)策略 13
2.2 空間復(fù)雜度和時(shí)間復(fù)雜度 13
2.2.1 空間復(fù)雜度 13
2.2.2 時(shí)間復(fù)雜度 15
2.3 算法趣聞 18
2.4 本章小結(jié) 20
第3章 數(shù)據(jù)結(jié)構(gòu)是算法的骨骼 21
3.1 Python的基本數(shù)據(jù)類(lèi)型 21
3.1.1 int類(lèi) 22
3.1.2 bool類(lèi) 22
3.1.3 str類(lèi) 23
3.1.4 list類(lèi) 28
3.1.5 tuple類(lèi) 29
3.1.6 dict類(lèi) 31
3.1.7 set類(lèi) 33
3.1.8 小結(jié) 35
3.2 數(shù)據(jù)結(jié)構(gòu)線性表 36
3.2.1 一般線性表 36
3.2.2 受限線性表 41
3.3 數(shù)據(jù)結(jié)構(gòu)樹(shù) 44
3.4 數(shù)據(jù)結(jié)構(gòu)圖 47
3.4.1 按存儲(chǔ)路徑方向分類(lèi) 48
3.4.2 按存儲(chǔ)結(jié)構(gòu)分類(lèi) 49
3.5 本章小結(jié) 50
第4章 十大排序算法 52
4.1 非線性時(shí)間比較類(lèi)排序 52
4.1.1 冒泡排序 53
4.1.2 快速排序 55
4.1.3 直接插入排序 59
4.1.4 希爾排序 65
4.1.5 簡(jiǎn)單選擇排序 70
4.1.6 堆排序 72
4.1.7 歸并排序 79
4.2 線性時(shí)間非比較類(lèi)排序 84
4.2.1 計(jì)數(shù)排序 84
4.2.2 桶排序 87
4.2.3 基數(shù)排序 90
4.3 本章小結(jié) 92
第2篇 開(kāi)始算法之旅
第5章 數(shù)字的魅力 94
5.1 情有獨(dú)鐘的素?cái)?shù) 94
5.2 卓絕罕有的完美數(shù) 98
5.3 潔身自好的吳柳 103
5.4 自戀成狂的水仙花數(shù) 106
5.5 回歸本真的快樂(lè)數(shù) 108
5.6 古埃及的神秘智慧Ⅰ 114
5.7 極限膨脹的階乘Ⅰ 118
5.8 RSA加密的鑰匙Ⅰ 121
5.9 瘋狂繁殖的兔子Ⅰ 124
5.10 數(shù)獨(dú)是如此簡(jiǎn)單Ⅰ 128
5.11 本章小結(jié) 129
第6章 遍歷算法 131
6.1 黑板上的排列組合 131
6.2 雞兔同籠 137
6.2.1 抬起腳來(lái) 137
6.2.2 萬(wàn)變不離其宗 142
6.3 我要的是獨(dú)一無(wú)二 144
6.4 鴛鴦巧促成雙對(duì)Ⅰ 156
6.5 二叉樹(shù)的遍歷 159
6.5.1 前序遍歷 163
6.5.2 中序遍歷 165
6.5.3 后序遍歷 167
6.5.4 層次遍歷 169
6.5.5 知二求一 171
6.6 迷宮最短路徑問(wèn)題 172
6.7 本章小結(jié) 176
第7章 迭代算法 178
7.1 猴子摘桃 179
7.2 阿米巴分裂 183
7.3 誰(shuí)才是真正的明星 185
7.4 數(shù)獨(dú)是如此簡(jiǎn)單Ⅱ 186
7.5 淺談迭代與遍歷 195
7.6 本章小結(jié) 195
第8章 遞歸算法 197
8.1 極限膨脹的階乘Ⅱ 197
8.2 RSA加密的鑰匙Ⅱ 198
8.3 瘋狂繁殖的兔子Ⅱ 199
8.4 漢諾塔通關(guān)攻略 201
8.5 握握手,好朋友 205
8.6 一起去看場(chǎng)電影吧 208
8.7 請(qǐng)展示所有排列 212
8.8 我該帶走什么 217
8.9 小青蛙跳跳跳 223
8.10 淺談遞歸與迭代 228
8.11 本章小結(jié) 230
第9章 回溯算法 231
9.1 素?cái)?shù)環(huán)問(wèn)題 232
9.2 全排列問(wèn)題Ⅰ 235
9.3 八皇后問(wèn)題 237
9.4 往事成風(fēng),我該如何選擇Ⅰ 241
9.5 迷宮逃亡 244
9.6 騎士周游列國(guó)Ⅰ 247
9.7 淺談回溯與遍歷、遞歸及迭代 251
9.8 本章小結(jié) 253
第10章 貪心算法 255
10.1 古埃及的神秘智慧Ⅱ 256
10.2 騎士周游列國(guó)Ⅱ 259
10.3 往事成風(fēng),我該如何選擇Ⅱ 263
10.4 你要的全拿走 266
10.5 敢問(wèn)路在何方 269
10.6 克魯斯卡爾算法 274
10.7 淺談貪心與迭代、回溯及遍歷 279
10.8 本章小結(jié) 280
第11章 分治算法 282
11.1 鴛鴦巧促成雙對(duì)Ⅱ 283
11.2 全排列問(wèn)題Ⅱ 289
11.3 你能找到它嗎 290
11.4 你們都被我包圍了 294
11.5 最大連續(xù)子序列之和 303
11.6 淺談分治與遞歸、遍歷及貪心 307
11.7 本章小結(jié) 308