妙趣橫生的算法

出版時(shí)間:2010-4  出版社:清華大學(xué)出版社  作者:楊峰  頁數(shù):377  
Tag標(biāo)簽:無  

前言

程序 = 數(shù)據(jù)結(jié)構(gòu) + 算法——著名的計(jì)算機(jī)科學(xué)家沃斯(Nikiklaus Wirth)自從著名的計(jì)算機(jī)科學(xué)家沃斯將程序設(shè)計(jì)形象地用上面的公式表示出來后,這條“黃金定律”便成為了人們學(xué)習(xí)程序設(shè)計(jì),進(jìn)行程序開發(fā)的準(zhǔn)則。要想成為一名真正專業(yè)的程序設(shè)計(jì)人員,基本的數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)和常用的算法知識是必須掌握的。脫離了這兩點(diǎn),編寫出來的程序一定不是健壯的好程序。然而單純地掌握了一些數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)和常用的算法知識也是遠(yuǎn)遠(yuǎn)不夠的。空洞地掌握所謂的數(shù)據(jù)結(jié)構(gòu)和算法等理論知識只是紙上談兵,這些知識必須要依托于一門程序設(shè)計(jì)語言才具有真正的生命力,才能夠轉(zhuǎn)化為真實(shí)的程序代碼,才能真正地解決實(shí)際問題。本書就是將數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)和常用的算法知識與目前廣泛應(yīng)用、最具群眾基礎(chǔ)的C語言相結(jié)合而產(chǎn)生的。本書的寫作思想是理論與實(shí)踐相結(jié)合,以實(shí)踐為核心,以實(shí)例為主要內(nèi)容。首先,本書總結(jié)歸納了數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、常用的排序查找算法和經(jīng)典的算法思想,提綱挈領(lǐng)地闡述了核心的理論知識。這樣可以使沒有系統(tǒng)學(xué)習(xí)過或者不熟悉數(shù)據(jù)結(jié)構(gòu)和算法等知識的讀者對這部分知識有一個(gè)基本的了解,并掌握基本的數(shù)據(jù)結(jié)構(gòu)知識和常用而經(jīng)典的算法思想,以便更加深入地學(xué)習(xí)本書的其他內(nèi)容。其次,本書列舉了大量的編程實(shí)例,這些題目都按照知識體系進(jìn)行了內(nèi)容上的劃分。本書列舉的這些編程實(shí)例都是一些比較靈活有趣的題目,有些題目滲透了巧妙的算法思想,有些題目則必須借助特殊的數(shù)據(jù)結(jié)構(gòu)才能更加容易解答。通過這些題目的訓(xùn)練,可以使讀者開闊眼界,啟迪思維,提高編程的興趣。最重要的是能夠提高讀者算法設(shè)計(jì)的本領(lǐng),提高讀者靈活應(yīng)用各種數(shù)據(jù)結(jié)構(gòu)的本領(lǐng),提高讀者編寫程序解決實(shí)際問題能力。本書有何特點(diǎn)1.結(jié)構(gòu)清晰,知識全面本書分為兩部分。第1部分是基礎(chǔ)知識介紹,主要介紹數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識和一些常用的算法思想。這部分內(nèi)容為核心的理論知識,可以幫助讀者學(xué)習(xí)和回顧數(shù)據(jù)結(jié)構(gòu)和算法的知識,使讀者在理論水平上有所提高,從而能夠更加順利地深入學(xué)習(xí)后續(xù)內(nèi)容。第2部分主要是編程實(shí)例的介紹,通過一些非常有趣的編程實(shí)例使讀者開闊眼界,發(fā)散思維,提高算法設(shè)計(jì)本領(lǐng),提高靈活應(yīng)用各種數(shù)據(jù)結(jié)構(gòu)的本領(lǐng),提高讀者編寫程序解決實(shí)際問題能力。

內(nèi)容概要

  本書理論與實(shí)踐相結(jié)合,旨在幫助讀者理解算法,并提高C語言編程能力,培養(yǎng)讀者的編程興趣,并鞏固已有的C語言知識。全書分為2個(gè)部分共10章,內(nèi)容涵蓋了編程必備的基礎(chǔ)知識(如數(shù)據(jù)結(jié)構(gòu)、常用算法等),編程實(shí)例介紹,常見算法和數(shù)據(jù)結(jié)構(gòu)面試題等。本書最大的特色在于實(shí)例豐富,題材新穎有趣,實(shí)用性強(qiáng),理論寓于實(shí)踐之中。通過本書的學(xué)習(xí),可以使讀者開闊眼界,提高編程的興趣,提高讀者的編程能力和應(yīng)試能力?! ”緯綆?張光盤,內(nèi)容為本書源代碼和作者為本書錄制的5.5小時(shí)多媒體教學(xué)視頻。本書可作為算法入門人員的教程,也可以作為學(xué)習(xí)過C語言程序設(shè)計(jì)的人士繼續(xù)深造的理想讀物,也可作為具有一定經(jīng)驗(yàn)的程序設(shè)計(jì)人員鞏固和提高編程水平,查閱相關(guān)算法實(shí)現(xiàn)和數(shù)據(jù)結(jié)構(gòu)知識的參考資料,同時(shí)也為那些準(zhǔn)備參加與算法和數(shù)據(jù)結(jié)構(gòu)相關(guān)的面試的讀者提供一些有益的幫助。

書籍目錄

第1部分 基礎(chǔ)篇  第1章 數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)    1.1 什么是數(shù)據(jù)結(jié)構(gòu)    1.2 順序表     1.2.1 順序表的定義     1.2.2 向順序表中插入元素     1.2.3 從順序表中刪除元素     1.2.4 實(shí)例與分析    1.3 鏈表     1.3.1 創(chuàng)建一個(gè)鏈表     1.3.2 向鏈表中插入結(jié)點(diǎn)     1.3.3 從鏈表中刪除結(jié)點(diǎn)     1.3.4 銷毀一個(gè)鏈表     1.3.5 實(shí)例與分析    1.4 棧     1.4.1 棧的定義     1.4.2 創(chuàng)建一個(gè)棧     1.4.3 入棧操作     1.4.4 出棧操作     1.4.5 棧的其他操作     1.4.6 實(shí)例與分析    1.5 隊(duì)列     1.5.1 隊(duì)列的定義     1.5.2 創(chuàng)建一個(gè)隊(duì)列     1.5.3 入隊(duì)列操作     1.5.4 出隊(duì)列操作     1.5.5 銷毀一個(gè)隊(duì)列     1.5.6 循環(huán)隊(duì)列的概念     1.5.7 循環(huán)隊(duì)列的實(shí)現(xiàn)     1.5.8 實(shí)例與分析    1.6 樹結(jié)構(gòu)     1.6.1 樹的概念     1.6.2 樹結(jié)構(gòu)的計(jì)算機(jī)存儲形式     1.6.3 二叉樹的定義     1.6.4 二叉樹的遍歷     1.6.5 創(chuàng)建二叉樹     1.6.6 實(shí)例與分析    1.7 圖結(jié)構(gòu)     1.7.1 圖的概念     1.7.2 圖的存儲形式     1.7.3 鄰接表的定義     1.7.4 圖的創(chuàng)建     1.7.5 圖的遍歷(1)——深度優(yōu)先搜索     1.7.6 圖的遍歷(2)——廣度優(yōu)先搜索     1.7.7 實(shí)例與分析   第2章 常用的查找與排序方法    2.1 順序查找    2.2 折半查找    2.3 排序的概述    2.4 直接插入排序    2.5 選擇排序    2.6 冒泡排序    2.7 希爾排序    2.8 快速排序   第3章 常用的算法思想    3.1 什么是算法    3.2 算法的分類表示及測評     3.2.1 算法的分類     3.2.2 算法的表示     3.2.3 算法性能的測評    3.3 窮舉法思想     3.3.1 基本概念     3.3.2 尋找給定區(qū)間的素?cái)?shù)     3.3.3 TOM的借書方案    3.4 遞歸與分治思想     3.4.1 基本概念     3.4.2 計(jì)算整數(shù)的劃分?jǐn)?shù)     3.4.3 遞歸的折半查找算法    3.5 貪心算法思想     3.5.1 基本概念     3.5.2 最優(yōu)裝船問題    3.6 回溯法     3.6.1 基本概念     3.6.2 四皇后問題求解    3.7 數(shù)值概率算法     3.7.1 基本概念     3.7.2 計(jì)算定積分  第2部分 編程實(shí)例解析  第4章 編程基本功  第5章 數(shù)學(xué)趣題(一) 第6章 數(shù)學(xué)趣題(二) 第7章 數(shù)據(jù)結(jié)構(gòu)趣題 第8章 數(shù)值計(jì)算問題 第9章 綜合題 第10章 算法設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)面試題精粹

章節(jié)摘錄

插圖:其實(shí)階乘的數(shù)學(xué)定義可以用遞歸函數(shù)來簡單地描述:這樣的函數(shù)稱為遞歸函數(shù),因?yàn)樵摵瘮?shù)本身直接或間接地調(diào)用了該函數(shù)本身。基于階乘的遞歸函數(shù)的描述,就不難設(shè)計(jì)出計(jì)算n的階乘n!的遞歸算法??梢钥闯觯褂眠f歸算法解決階乘問題形式上更加簡潔,更易于人們理解。在設(shè)計(jì)遞歸算法時(shí)要注意以下幾點(diǎn)。(1)每個(gè)遞歸函數(shù)都必須有一個(gè)非遞歸定義的初始值,作為遞歸結(jié)束標(biāo)志,或遞歸結(jié)束的出口。就像實(shí)例3.5所描述的遞歸算法中的if(n-0)ret啪l;如果一個(gè)遞歸算法中沒有這個(gè)非遞歸定義的初始值,那么該遞歸調(diào)用是無法計(jì)算出具體的值的(或無法得到結(jié)果),同時(shí)該遞歸調(diào)用也無法結(jié)束。(2)在設(shè)計(jì)遞歸算法時(shí),要解決的問題需具有遞歸性。例如要計(jì)算,2的階乘n!,n!的定義本身具有遞歸性。這種所謂的遞歸性實(shí)際上就是一種反復(fù)調(diào)用自身過程的特性。(3)雖然采用遞歸算法解決問題,特別是一些復(fù)雜問題,更加方便且容易實(shí)現(xiàn),但是遞歸方法的運(yùn)行較低,時(shí)間和空間復(fù)雜度都比較高,因此對于一些對時(shí)間和空間要求較高的程序,建議使用非遞歸算法設(shè)計(jì)。在實(shí)際的算法設(shè)計(jì)中,遞歸與分治如同一對兄弟,經(jīng)常結(jié)合在一起使用。這是因?yàn)?,由分治的方法產(chǎn)生的子問題往往都是原問題的更小規(guī)模。反復(fù)使用分治的手段,可使子問題與原問題類型一致,但規(guī)模不斷縮小,最終使子問題比較容易求解。既然子問題與原問題的類型一致,這就具有了所謂的遞歸性,因此可以使用遞歸的方法用解決原問題的算法去解決同類型的子問題。在第2章中介紹的折半查找算法只是單純地使用了分治的策略,在下面的實(shí)例分析中將使用遞歸與分治思想相結(jié)合的方法進(jìn)行折半查找算法的設(shè)計(jì)。

編輯推薦

《妙趣橫生的算法(C語言實(shí)現(xiàn))》:5.5小時(shí)教學(xué)視頻、86個(gè)趣味算法題、61個(gè)算法面試題,一學(xué)就會!幫您開闊眼界,培養(yǎng)編程興趣,提高編程能力,增強(qiáng)求職的競爭力!特別提示《妙趣橫生的算法(C語言實(shí)現(xiàn))》配套多媒體教學(xué)視頻和涉及的實(shí)例代碼收錄于《妙趣橫生的算法(C語言實(shí)現(xiàn))》配書光盤中。另外,《妙趣橫生的算法(C語言實(shí)現(xiàn))》適合作為相關(guān)學(xué)校的教材使用。為了方便老師授課,《妙趣橫生的算法(C語言實(shí)現(xiàn))》專門配備了相應(yīng)的教學(xué)PPT?!睹钊M生的算法(C語言實(shí)現(xiàn))》內(nèi)容生動有趣,寓教于樂,旨在幫您開闊眼界,培養(yǎng)編程興趣,提高編程能力。增強(qiáng)求職的競爭力。如果您想在程序設(shè)計(jì)之路上走得更遠(yuǎn),請翻開《妙趣橫生的算法(C語言實(shí)現(xiàn))》,仔細(xì)研讀吧,它將助您一臂之力?!睹钊M生的算法(C語言實(shí)現(xiàn))》特色◎提供了5.5小時(shí)多媒體教學(xué)視頻,學(xué)習(xí)起來比較直觀?!蛱峁┝?4個(gè)數(shù)據(jù)結(jié)構(gòu)和算法的基礎(chǔ)知識實(shí)例,便于讀者入門?!蛱峁┝?6個(gè)經(jīng)典、有趣、貼近生活、實(shí)用性強(qiáng)的算法實(shí)例?!蛱峁┝?1個(gè)算法及數(shù)據(jù)結(jié)構(gòu)的面試題。增強(qiáng)求職者的競爭力?!騼?nèi)容梯度科學(xué),既適合入門,也適合進(jìn)一步提高和研究?!驎袑?shí)例用C語言實(shí)現(xiàn),便于讀者驗(yàn)證及加深對C語言的理解。◎既涵蓋基本理論,又包含大量實(shí)例,寓理論于實(shí)踐之中?!蛑v解由淺入深,通俗易懂,將復(fù)雜問題簡單化,讀者可以輕松掌握。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    妙趣橫生的算法 PDF格式下載


用戶評論 (總計(jì)79條)

 
 

  •   書上介紹上很多算法,對于自學(xué)C語言的人來說,很實(shí)用.也是一本對C語言編程技術(shù)提高的好教程.特別是光盤上的視頻教程.
  •   通過前一部分可以了解基本的數(shù)據(jù)結(jié)構(gòu),后面都是大量的小例子,幫助你理解算法,開動你的腦筋
  •   至于物流和書本都沒得說,光盤也完好
    下面說說書本吧:原來大學(xué)期間無意中發(fā)現(xiàn)的這本書,借了看后覺的算法講述的都很唯美,所以買了學(xué)習(xí)下,覺的對于新手還是很有必要看看
  •   大多數(shù)算法書都是概念連篇,很枯燥,這本書給人以不一樣的感覺,在解決趣味問題的時(shí)候,不知不覺掌握了算法,可以吸引你讀下去
  •   權(quán)當(dāng)拿來 練練手了,畢竟 算法才是 計(jì)算機(jī)的 王道
  •   這本書適合畢業(yè)生面試看的一本書,很多應(yīng)聘的筆試題都可以在這本書找到。
  •   還沒看,但翻了一下,覺得一般。代碼還挺好,實(shí)例多。但“妙趣橫生”,不是深入講解那種。
  •   這本書挺好的 感覺比用的教材好很多 而且有很多實(shí)例 不錯(cuò)
  •   C語言學(xué)習(xí)的樂趣
  •   精品,有益知識擴(kuò)充
  •   非常喜歡,對我的學(xué)習(xí)很有幫助!
  •   不錯(cuò)的一本書,但是內(nèi)容比較淺顯~
  •   本書的排版風(fēng)格感覺挺好的,紙質(zhì)也不錯(cuò)。好像內(nèi)容也非常好哦。
  •   說的很詳細(xì),很有趣
  •   這是我在學(xué)校圖書館經(jīng)常用到的一本書 由于這書確實(shí)不錯(cuò) 借的人很多 每次去借都是被借走了 只能在閱覽區(qū) 勉強(qiáng)看看 感覺確實(shí)對自己很有用 于是干脆上網(wǎng)買了 好書值得擁有收藏
  •   超贊的一本書 里面滿滿都是精華 建議有基礎(chǔ)的同學(xué)看
  •   例題經(jīng)典,東西很多,同時(shí)配上視頻,資料不錯(cuò)
  •   大學(xué)比賽時(shí)看過這本書,沒想到工作后還是覺得有必要看一看。
  •   收到圖書,感覺很好的一本書
  •   題目挺多的,講解也可以。相對來說淺了些,妙趣也沒有達(dá)到橫生的級別。
  •   工科的必備書目
  •   一本很好的書 又去有意思
  •   很好的書呀,我喜歡。應(yīng)該很好的讀一讀
  •   好評。兒子收到我送的書,好開心,現(xiàn)在每晚都在看。
  •   希望趕緊都學(xué)會,找到好工作
  •   忘了評價(jià)了,很好,呵呵
  •   喜歡這樣的紙質(zhì)
  •   學(xué)長推薦的。。不知道好不好呢
  •   在圖書館看到的,就買了,很值得看哦
  •   對我這個(gè)新手,可以滿足我
  •   HAHAHAHAHAHAHA
  •   之能說還不錯(cuò)吧
  •   真的很好 快遞很好
  •   節(jié)省了不少代碼開發(fā)的時(shí)間
  •   我不清楚,應(yīng)該很好的
  •   妙趣橫生的算法(C語言實(shí)現(xiàn)),有助于對數(shù)據(jù)結(jié)構(gòu)的理解
  •   例子有講解,適合算法初學(xué)者或者對算法感興趣的人。最后一章還有數(shù)據(jù)結(jié)構(gòu)與算法常用筆試題,蠻不錯(cuò)的
  •   很基礎(chǔ)的一本書,但是就是重復(fù)太多啦,如果算法再多些就好啦
  •   還行,本書講的很詳細(xì),有很多經(jīng)典算法
  •   書的例子海蠻多的,挺實(shí)用的 要是再專一于算法更好
  •   這里面的算法挺好
  •   常用數(shù)據(jù)結(jié)構(gòu)都有,入門不錯(cuò),不適合深入學(xué)習(xí)。
  •   書上的內(nèi)容很實(shí)用而且還帶有光盤,我已經(jīng)開看羅
  •   買來大致看了看,里面講解很基礎(chǔ),也有部分加深了的知識點(diǎn)。不過還好,書很正值得看。
  •   拿平時(shí)的課本看看就可以了 這里面有很多都重復(fù)課本里面的知識 買這本書沒必要
  •   內(nèi)容很詳實(shí),有梯度,有難度
  •   跟著描點(diǎn)還可以吧.基礎(chǔ)不是很好.有點(diǎn)難度
  •   包裝還行,正在閱讀中。
  •   只是講得不是很詳細(xì)
  •   忙死了,沒時(shí)間忙死了,沒時(shí)間忙死了,沒時(shí)間
  •   看了下東西,結(jié)果就掉了,傷不起啊。。!
  •   還沒有正式讀,感覺應(yīng)該還好吧
  •   內(nèi)容不錯(cuò),表皮好舊的感覺!?。±锩媸切碌摹ぁぁ?/li>
  •   不太適合新手閱讀
  •   擦哈哈打發(fā)打發(fā)的方法 一點(diǎn)都不好
  •   哎,被騙了,原以為新華出版的不會差,隨便翻了下,發(fā)現(xiàn)這本書作者的編程水平,說實(shí)話太差,就這點(diǎn)菜鳥水平,去教書會害人害已,最搞笑的是,這本書,還是編著,太惡搞了吧
    書的內(nèi)容給人的感覺就是東抄西湊的,沒有自己的想法(連編都談不上,還編著),比如,書上每個(gè)算法,都寫了兩篇,描述和實(shí)例各一篇,有必要嗎?浪費(fèi)讀者的閱讀時(shí)間,算法精髓體現(xiàn)在一個(gè)精字,如果沒說到點(diǎn)子上,再多的啰嗦也是多余的。
    哎,我本來是不想說的,實(shí)在看不下去了,不過,從這本書書的目錄來看,還是本好書,適合初學(xué)者,只是作者的編程水平和語言表達(dá)不足,有待提高。
  •   這本書看了1天,老實(shí)說沒點(diǎn)感覺,寫書的明顯是混錢的。
  •   算是數(shù)據(jù)結(jié)構(gòu),數(shù)值計(jì)算很多學(xué)科的簡單實(shí)現(xiàn),當(dāng)做業(yè)余的"小說"看吧
  •   沒有想象中的好,不過學(xué)習(xí)c的入門提高,還可以看看
  •   適合我,正想學(xué)習(xí)一下C語言得常見算法,這書里面的趣味范例還挺多的。印刷的也不錯(cuò),正品。
  •   這本書還是不錯(cuò)的,推薦一下
  •   有價(jià)值的部分不多,最讓人不解的是,公開出版的書,代碼竟然可以帶有一大堆q1,q2,p這樣的變量。
  •   零基礎(chǔ)的可以慢慢看,很有邏輯
  •   20號早上下單,21下午就到了。書內(nèi)容還沒看,但是整體感覺不錯(cuò)。
  •   挺好的,對C語言和算法學(xué)習(xí)都挺不錯(cuò)
  •   書不錯(cuò),通俗易懂,深入檢出
  •   很棒的書,很喜歡。以后還會來買書的
  •   還沒有看。。。老師推薦的。。。
  •   還湊合吧,剛開始的時(shí)候看看也挺好。
  •   給表弟買的,自己只是概覽,不錯(cuò)的書!
  •   幫舍友買的,聽說還不錯(cuò),正版書比較貴,學(xué)生黨的可以自己去復(fù)印,比書便宜不少
  •   朋友推薦的?。〔诲e(cuò)??!適合深入探究
  •   書很好,質(zhì)量不錯(cuò),包裝也挺好,很滿意
  •   很好,很不錯(cuò),學(xué)習(xí)算法好書
  •   妙趣橫生的算法(C語言實(shí)現(xiàn))
  •   就是普通的算法書。
  •   算法很好用
  •   算法必看書~
  •   算法講的還行
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7