發表於2024-12-14
妙趣橫生的算法(C語言實現 第2版) pdf epub mobi txt 電子書 下載
算法入門經典暢銷書全新升級,第1版圖書被大量信息學競賽學員作為學習教材
5.5小時教學視頻、114個經典算法題、61個算法麵試題和4個ACM競賽題
幫您開闊眼界,培養編程興趣,提高編程能力,增強求職競爭力
提供瞭5.5小時算法入門專題教學視頻,學習起來比較直觀
提供瞭28個數據結構及算法基礎知識實例,便於讀者入門
提供瞭86個經典、有趣、貼近生活、實用性強的算法實例
提供瞭61個算法及數據結構麵試題,增強求職者的競爭力
提供瞭4個經典的ACM程序設計競賽題目,便於讀者瞭解
書中的所有實例用C語言實現,便於讀者驗證和加深對C語言的理解
既涵蓋瞭算法的基本理論知識,又包含瞭大量實例,寓理論於實踐之中
海報:
《妙趣橫生的算法(C語言實現 第2版)》是深受廣大讀者好評的《妙趣橫生的算法(C語言實現)》一書的全新升級版。本書在第1版的基礎上對原書內容做瞭大量的調整和補充,並將書中的實例代碼在Visual Studio 2010環境下重新編譯通過,以適應當前技術的發展和閱讀需求。本書內容涵蓋瞭算法入門的必備基礎知識和大量的趣味算法題、麵試題和ACM競賽題等。通過學習本書內容,可以開闊讀者的視野,幫助讀者理解算法,提高編程興趣和能力,並提高C語言編程能力,還可以讓讀者瞭解IT麵試中的常見算法題及編程競賽中的相關知識。另外,本書提供瞭5.5小時配套教學視頻和實例源代碼,以提高讀者的學習效率。
本書共11章,分2篇。第1篇為算法基礎,包括數據結構基礎知識、常用的查找與排序方法、常用的算法思想等。第2篇為常用算法實例解析,包括20個編程基本功趣題、39個數學趣題、14個數據結構趣題、7個數值計算趣題、6個綜閤題、61個算法設計與數據結構麵試題、4個ACM程序設計競賽 題目。
本書適閤學習算法的人員作為入門教程,也適閤有C語言基礎的人作為編程實踐讀物,還可作為有編程經驗的程序員查閱相關算法實現和數據結構知識的參考書。另外,本書也可以為那些準備參加IT麵試和信息學競賽的讀者提供有益的幫助。
本書精華內容
數據結構基礎(8個實例)
常用的查找與排序方法(9個實例)
常用的算法思想(11個實例)
編程基本功(20個實例)
數學趣題(39個實例)
數據結構趣題(14個實例)
數值計算問題(7個實例)
綜閤題(6個實例)
常見的算法設計麵試題(31個實例)
常見的數據結構麵試題(30個實例)
ACM程序設計競賽題目選講(4個實例)
本書贈送的教學視頻內容
數據結構專題(36分鍾)
查找和排序算法專題(75分鍾)
常用算法專題(63分鍾)
重點編程實例解析專題(89分鍾)
重點麵試題解析專題(65分鍾)
楊峰,目前就職於中國石化信息技術培訓中心,主要負責ERP係統的底層數據交換業務。有近10年的C語言開發經驗。曾經參與過基於內容的圖像檢索係統、圖書館信息管理係統、基於ARM的嵌入式密碼係統和基於VHDL的硬件時鍾設備等。齣版過兩部C語言圖書。
第1篇 算法基礎
第1章 數據結構基礎
1.1 什麼是數據結構
1.2 順序錶
1.2.1 順序錶的定義
1.2.2 嚮順序錶中插入元素
1.2.3 從順序錶中刪除元素
1.2.4 實例與分析
1.3 鏈錶
1.3.1 創建一個鏈錶
1.3.2 嚮鏈錶中插入結點
1.3.3 從鏈錶中刪除結點
1.3.4 銷毀一個鏈錶
1.3.5 實例與分析
1.4 棧
1.4.1 棧的定義
1.4.2 創建一個棧
1.4.3 入棧操作
1.4.4 齣棧操作
1.4.5 棧的其他操作
1.4.6 實例與分析
1.5 隊列
1.5.1 隊列的定義
1.5.2 創建一個隊列
1.5.3 入隊列操作
1.5.4 齣隊列操作
1.5.5 銷毀一個隊列
1.5.6 循環隊列的概念
1.5.7 循環隊列的實現
1.5.8 實例與分析
1.6 樹結構
1.6.1 樹的概念
1.6.2 樹結構的計算機存儲形式
1.6.3 二叉樹的定義
1.6.4 二叉樹的遍曆
1.6.5 創建二叉樹
1.6.6 實例與分析
1.7 圖結構
1.7.1 圖的概念
1.7.2 圖的存儲形式
1.7.3 鄰接錶的定義
1.7.4 圖的創建
1.7.5 圖的遍曆(1)——深度優先搜索
1.7.6 圖的遍曆(2)——廣度優先搜索
1.7.7 實例與分析
1.8 章後習題
第2章 常用的查找與排序方法
2.1 順序查找
2.2 摺半查找
2.3 排序的概述
2.4 直接插入排序
2.5 選擇排序
2.6 冒泡排序
2.7 希爾排序
2.8 快速排序
2.9 堆排序
2.10 各種排序算法性能比較
2.11 章後習題
第3章 常用的算法思想
3.1 什麼是算法
3.2 算法的分類錶示及測評
3.2.1 算法的分類
3.2.2 算法的錶示
3.2.3 算法性能的測評
3.3 窮舉法思想
3.3.1 基本概念
3.3.2 尋找給定區間的素數
3.3.3 TOM的藉書方案
3.4 遞歸與分治思想
3.4.1 基本概念
3.4.2 計算整數的劃分數
3.4.3 遞歸的摺半查找算法
3.5 貪心算法思想
3.5.1 基本概念
3.5.2 最優裝船問題
3.6 迴溯法
3.6.1 基本概念
3.6.2 四皇後問題求解
3.7 數值概率算法
3.7.1 基本概念
3.7.2 計算定積分
3.8 章後習題
第2篇 常用算法實例解析
第4章 編程基本功
4.1 字符類型統計器
4.2 計算字符的ASCII碼
4.3 嵌套if-else語句的妙用
4.4 基於switch語句的譯碼器
4.5 判斷閏年
4.6 指針變量作參數
4.7 矩陣的轉置運算
4.8 矩陣的乘法運算
4.9 巧用位運算
4.10 文件的讀寫
4.11 計算文件的大小
4.12 記錄程序的運行時間
4.13 十進製/二進製轉化器
4.14 打印特殊圖案
4.15 打印楊輝三角
4.16 復雜級數的前n項和
4.17 尋找矩陣中的“鞍點”
4.18 n階勒讓德多項式求解
4.19 遞歸反嚮輸齣字符串
4.20 一年中的第幾天
第5章 數學趣題(一)
5.1 捨罕王的失算
5.2 求兩個數的最大公約數和最小公倍數
5.3 歌德巴赫猜想的近似證明
5.4 三色球問題
5.5 百錢買百雞問題
5.6 判斷迴文數字
5.7 填數字遊戲求解
5.8 新郎和新娘
5.9 愛因斯坦的階梯問題
5.10 尋找水仙花數
5.11 猴子吃桃問題
5.12 兔子産仔問題
5.13 分解質因數
5.14 常勝將軍
5.15 求π的近似值
5.16 魔幻方陣
5.17 移數字遊戲
5.18 數字的全排列
5.19 完全數
5.20 親密數
5.21 數字翻譯器
5.22 遞歸實現數製轉換
5.23 誰在說謊
第6章 數學趣題(二)
6.1 連續整數固定和問題
6.2 錶示成兩個數的平方和
6.3 具有特殊性質的數
6.4 驗證角榖猜想
6.5 驗證四方定理
6.6 遞歸法尋找最小值
6.7 尋找同構數
6.8 驗證尼科徹斯定理
6.9 三重迴文數字
6.10 馬剋思手稿中的數學題
6.11 漁夫捕魚問題
6.12 尋找假幣
6.13 計算組閤數
6.14 遞歸法求冪
6.15 漢諾塔
6.16 選美比賽
第7章 數據結構趣題
7.1 順序錶的就地逆置
7.2 動態數列排序
7.3 在原錶空間進行鏈錶的歸並
7.4 約瑟夫環
7.5 二進製/八進製轉換器
7.6 迴文字符串的判定
7.7 括號匹配
7.8 魔王語言翻譯
7.9 動態雙嚮鏈錶的應用
7.10 判斷完全二叉樹
7.11 動畫模擬創建二叉樹
7.12 打印符號三角形
7.13 遞歸函數的非遞歸求解
7.14 任意長度整數加法
第8章 數值計算問題
8.1 遞推化梯形法求解定積分
8.2 求解低階定積分
8.3 迭代法開平方運算
8.4 牛頓法解方程
8.5 歐拉方法求解微分方程
8.6 改進的歐拉方法求解微分方程
8.7 雅可比迭代公式求解綫性方程組
第9章 綜閤題
9.1 破碎的砝碼
9.2 計算24的問題
9.3 馬踏棋盤
9.4 0-1背包問題
9.5 八皇後問題求解
9.6 簡易文件加密/解密係統
第10章 算法設計與數據結構麵試題精粹
10.1 常見的算法設計題
10.2 常見的數據結構題
第11章 ACM程序設計競賽題目選講
11.1 奧斯卡奬章
11.2 準備就緒?
11.3 兔子
11.4 階乘之和
程序 = 數據結構 + 算法
——著名的計算機科學傢沃斯(Nikiklaus Wirth)
自從著名的計算機科學傢沃斯將程序設計形象地用上麵的公式錶示齣來後,這條“黃金定律”便成為瞭人們學習程序設計,進行程序開發的準則。要想成為一名真正專業的程序設計人員,基本的數據結構基礎和常用的算法知識是必須掌握的。脫離瞭這兩點,編寫齣來的程序一定不是健壯的好程序。
然而單純地掌握一些數據結構基礎和常用的算法知識也是遠遠不夠的。空洞地掌握所謂的數據結構和算法等理論知識隻是紙上談兵,這些知識必須要依托於一門程序設計語言纔具有真正的生命力,纔能夠轉化為真實的程序代碼,纔能真正地解決實際問題。
本書就是將數據結構基礎和常用的算法知識與目前廣泛應用、最具群眾基礎的C語言相結閤而産生的。本書的寫作思想是理論與實踐相結閤,以實踐為核心,以實例為主要 內容。
首先,本書總結歸納瞭數據結構基礎、常用的排序查找算法和經典的算法思想,提綱挈領地闡述瞭核心的理論知識。這樣可以使沒有係統學習過或者不熟悉數據結構和算法等知識的讀者,對這部分知識有一個基本的瞭解,並掌握基本的數據結構知識和常用而經典的算法思想,以便更加深入地學習本書的其他內容。
其次,本書列舉瞭大量的編程實例,這些題目都按照知識體係進行瞭內容上的劃分。本書列舉的這些編程實例都是一些比較靈活有趣的題目,有些題目滲透瞭巧妙的算法思想,有些題目則必須藉助特殊的數據結構纔能更加容易解答。通過這些題目的訓練,可以使讀者開闊眼界,啓迪思維,提高編程的興趣。最重要的是能夠提高讀者算法設計的本領;提高讀者靈活應用各種數據結構的本領;提高讀者編寫程序解決實際問題的能力。
關於本書第2版
本書第1版齣版後廣受讀者好評,並且多次加印,被大量的算法入門人員和愛好者及一些參加算法競賽的讀者作為參考讀物。但是隨著技術的發展,第1版圖書已經不能完全適應當前的閱讀需求。例如,很多開發人員已經將C語言的編程環境由以前流行的Tubro C遷移到瞭當前流行的Visual Studio平颱上,加之本書第1版圖書在解析上還有改進空間。基於這些原因,我們對本書第1版進行瞭係統的改版,以方便讀者更好地學習。相比第1版圖書,本書第2版內容上的主要變化體現在以下幾個方麵:
* 書中涉及的實例代碼在Visual Studio 2010環境下重新編譯通過;
* 對一些敘述不清或不夠通順的語句進行瞭修改;
* 對第1版圖書中存在的一些疏漏進行瞭修訂;
* 給實例源代碼增加瞭更加詳細的注釋;
* 給第1~3章中各增加瞭一節新內容,作為課後練習,並給齣瞭參考答案;
* 對第2章中的快速排序和希爾排序等內容進行瞭較大幅度的修改,同時還新增加瞭堆排序的介紹及各種排序性能的比較;
* 新增瞭一章關於ACM程序設計競賽的相關內容。
本書有何特點
1.結構清晰,知識全麵
本書分為2篇。第1篇是基礎知識介紹,主要介紹數據結構的基礎知識和一些常用的算法思想。這部分內容為核心的理論知識,可以幫助讀者學習和迴顧數據結構和算法的知識,使讀者在理論水平上有所提高,從而能夠更加順利地深入學習後續內容。第2篇主要是編程實例的介紹,通過一些非常有趣的編程實例使讀者開闊眼界,發散思維,提高算法設計本領,提高靈活應用各種數據結構的本領,提高讀者編寫程序解決實際問題的能力。
2.實例豐富,講解到位
本書的寫作思想就是以實踐為核心,以編程實例為主要內容。因此本書中包含瞭大量的編程實例,並都附有詳細的分析和解答。作者認為講解到位是本書與同類書籍相比的一大特點。本書盡量做到深入淺齣,多用簡單的語句配以圖示來講解比較復雜的問題,而且盡量做到講解透徹明白,不敷衍讀者。
3.題材新型,趣味性強
興趣是最好的老師。本書在編寫過程中始終貫穿這一思想。因此本書中的題目設置盡量做到既有練習意義,又富有趣味性。特彆是在本書的第2篇中,列舉瞭大量的兼顧難度和趣味性的經典題目,例如魔幻方陣、漢諾塔、魔王語言翻譯、約瑟夫環、馬踏棋盤、巧算24、八皇後問題等。這樣使讀者對所謂的難題也不再那麼畏懼,而是更加願意麵對它。
4.重點突齣,實用性強
本書的寫作意圖是通過講解大量生動有趣的實例,培養讀者的編程能力、算法設計思想和對數據結構的靈活運用。歸根到底就是通過程序設計解決實際問題的能力。因此本書中的所有題目都不隻是給齣答案而已,而是從算法思想的層麵來剖析,涉及復雜數據結構的內容,還通過圖示的方法形象地加以說明。特彆值得一提的是,本書的最後一章為算法設計與數據結構麵試題精粹,這部分內容從實戰和應試的角度齣發,旨在鞏固讀者的知識水平和提高讀者的應試能力,同時使得本書更具實用價值。
5.視頻教學,高效直觀
本書中的重點內容和實例提供瞭配套教學視頻輔助講解。讀者可以先閱讀書中的內容講解,然後再結閤教學視頻進行學習,可以獲得更加高效而直觀的學習效果。
本書內容及知識體係
本書共11章,分為2篇,主要內容介紹如下。
第1篇 算法基礎(第1~3章)
本篇主要介紹一些必備的算法基礎知識,包括數據結構基礎知識、常用的查找和排序方法、常用的算法思想。
第2篇 常用算法實例解析(第4~11章)
本篇主要介紹一些基於C語言的算法編程實例。包括編程的基本功、數學趣題、數據結構題、數值計算題、綜閤題、算法設計與數據結構麵試題、ACM程序設計競賽試題等。這些題目內涵豐富,兼顧趣味性,從不同側麵體現齣對數據結構知識和算法設計思想的靈活運用,相信會對讀者有一定幫助。
本書讀者對象
* 對算法設計有興趣的入門人員;
* 有一定編程基礎的算法愛好者;
* 需要提高C語言編程水平的人員;
* 參加IT企業麵試的人員;
* 信息學競賽的參賽人員;
* 各種程序設計選拔賽的參賽人員;
* 大中專院校的學生。
編者
棒棒棒!有的學瞭,該是閉關修煉的時候瞭
評分很有意思的一本書,很多思路可以藉鑒
評分好多經典算法啊,基礎很重要
評分物美價廉,經濟實惠,好貨不貴
評分京東購物,多快好省,網上訂購,就選它!
評分書名很不錯,看內容也是詼諧幽默,內容還沒仔細看,應該乾貨比較多
評分快遞不行啊 書都磕壞瞭
評分挺好的一本書,基礎詳細
評分對算法進行一些初級的認識;
妙趣橫生的算法(C語言實現 第2版) pdf epub mobi txt 電子書 下載