算法:C語(yǔ)言實(shí)現(xiàn)

出版時(shí)間:2006-9  出版社:機(jī)械工業(yè)出版社  作者:塞奇威克  頁(yè)數(shù):702  
Tag標(biāo)簽:無(wú)  

內(nèi)容概要

本書是Sedgewick徹底修訂和重寫的C算法系列的第一本。全書分為四部分,共16章。第一部分“基礎(chǔ)知識(shí)” (第1~2章) 介紹基本算法分析原理。第二部分“數(shù)據(jù)結(jié)構(gòu)” (第3~5章) 講解算法分析中必須掌握的數(shù)據(jù)結(jié)構(gòu)知識(shí),主要包括基本數(shù)據(jù)結(jié)構(gòu)、抽象數(shù)據(jù)結(jié)構(gòu)、遞歸和樹。第三部分“排序” (第6~11章) 按章節(jié)順序分別討論基本排序方法 (如選擇排序、插入排序、冒泡排序、希爾排序等) 、快速排序方法、歸并和歸并排序方法、優(yōu)先隊(duì)列與堆排序方法、基數(shù)排序方法以及特殊目的排序方法,并比較了各種排序方法的性能特征。第四部分“搜索” (第12~16章) 在進(jìn)一步講解符號(hào)表、樹等抽象數(shù)據(jù)類型的基礎(chǔ)上,重點(diǎn)討論哈希方法、基數(shù)搜索以及外部搜索方法。    書中提供了用C語(yǔ)言描述的完整算法源程序,并且配有豐富的插圖和練習(xí)。作者用簡(jiǎn)潔的實(shí)現(xiàn)將理論和實(shí)踐成功地結(jié)合了起來(lái),這些實(shí)現(xiàn)均可在真實(shí)應(yīng)用上測(cè)試,使得本書自問(wèn)世以來(lái)備受程序員的歡迎。    本書可作為高等院校計(jì)算機(jī)相關(guān)專業(yè)算法與數(shù)據(jù)結(jié)構(gòu)課程的教材和補(bǔ)充讀物,也可供自學(xué)之用。

作者簡(jiǎn)介

Robert Sedgewick 擁有斯坦福大學(xué)博士學(xué)位(導(dǎo)師為Donald E.Knuth),普林斯頓大學(xué)計(jì)算機(jī)科學(xué)系教授,Adobe Systems公司董事,曾是Xerox PARC的研究人員,還曾就職于美國(guó)國(guó)防部防御分析研究所以及INRIA。除本書外,他還與Rhilippe Flajolet合著了《算法分析導(dǎo)論》一書。

書籍目錄

Contents  Chater 1.Introduction    1.1  Algorithms    1.2  A Samle Problem-Connectivity    1.3  Union-Find Algorithms    1.4  Perspective    1.5  Summary of Topics  Chapter 2.Priciples of Algorithm Anaylysis    2.1 Implementation and Empirical Analysis    2.2  Analysis of Algorithms    2.3  Growth of Functions    2.4  Big-Oh notation    2.5  Basic Recurrences    2.6  Examples of Algorithm Analysis    2.7  Guarantees,Predictions,and LimitationsData Stuctures  Chapter 3.Elementary Data Structures    3.1  Building Blocks    3.2  Arrays    3.3  Linked Lists    3.4  Elementary List Processing    3.5  Memory Allocation for Lists    3.6  Stuings    3.7  Compound Data Sturctures  Chapter 4.Abstract Data Types  Chapter 5.Recursion and TreesSorting  Chapter 6.Elementary Sorting Methods  Chapter 7.Quicksort  Chapter 8:Merging and Mergesort  Chapter 9:Priority Queues and Heapsort  Chapter 10:Radix Sorting  Chapter 11:Special-Purpose SortsSearching  Chapter 12.Symbol Tables and BSTs  Chapter 13.Balanced Trees  Chapter 14.Hashing  Chpater 15.Radix Search  Chapter 16.External SearchingIndex

媒體關(guān)注與評(píng)論

  對(duì)于在數(shù)學(xué)分析方面不算熟練且需要留意理論算法的普通程序員來(lái)說(shuō),本書是一本可讀性很強(qiáng)的優(yōu)秀讀本。他們應(yīng)該會(huì)從中獲益良多?!  猄teve Summit,《C Programming FAQs》的作者  Sedgewick有一種真正的天賦,可以用易于理解的方式來(lái)解釋概念。書中采用了一些易懂的實(shí)戰(zhàn)程序,其篇幅僅有一頁(yè)左右,這更是錦上添花。而書中大量采用的圖、程序、表格也會(huì)極大幫助讀者的學(xué)習(xí)和理解,這使本書更顯得與眾不同。  ——William A. Ward,南亞拉巴馬大學(xué)

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    算法:C語(yǔ)言實(shí)現(xiàn) PDF格式下載


用戶評(píng)論 (總計(jì)59條)

 
 

  •   本書將基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)和相應(yīng)算法都解釋得很詳細(xì),作者的解釋是一種引導(dǎo)性的,很適合初學(xué)者
  •   對(duì)算法與數(shù)據(jù)結(jié)構(gòu)講解的很透徹,是一本值得仔細(xì)閱讀理解的好書。
  •   看這本書會(huì)比更容易理解數(shù)據(jù)結(jié)構(gòu),書中代碼也都是c的實(shí)現(xiàn)
  •   東西講的很清楚,但是代碼中有些不太好習(xí)慣,很是就開始了ADT介紹其實(shí)知道ADT才知道頭文件的作用,。。。。
  •   質(zhì)量一般,內(nèi)容不錯(cuò)
  •   還是這本好
  •   可以接受的價(jià)格!書本內(nèi)容很好!值得購(gòu)買!
  •   這本書很適合程序員參考,書中的代碼很經(jīng)典。
  •   印的著實(shí)粗糙~字體看上去不舒服
  •   書的內(nèi)容不錯(cuò),書的質(zhì)量真的不咋的,而且,英文看得壓力本來(lái)就大,現(xiàn)在看得就是難受了。。。。
  •     將算法,算法代碼居然是錯(cuò)誤的,我暈死
      第5章遞歸與樹
      程序5.12背包問(wèn)題
      
      int knap(int cap);
      誰(shuí)看過(guò)這個(gè)算法?完全不正確......
      
      
      求推薦,中文算法書,要求算法代碼絕對(duì)無(wú)錯(cuò)誤的,謝謝
      
  •     手頭有國(guó)外的英文版3rd eidition,也有機(jī)械工業(yè)的中文版3rd eidition??墒菫槭裁粗形陌姹扔⑽陌姹×撕枚??
      
      看過(guò)國(guó)內(nèi)的英文版,或者國(guó)外英文版的同學(xué)誰(shuí)能說(shuō)一下,是不是翻譯版有刪減啊。
      
      我沒(méi)仔細(xì)看,紅黑樹那一節(jié),我的英文版有12頁(yè)左右,可是中文版大概只有7頁(yè)。
      
      沒(méi)人發(fā)現(xiàn)這個(gè)問(wèn)題嗎?
  •       花了四個(gè)月時(shí)間,終于將此書第1-4部分讀完了,放下書的那一刻無(wú)比高興哈哈。
        Robert Sedgewick老爺子真不是蓋的,對(duì)算法的講解清晰易懂,C語(yǔ)言程序簡(jiǎn)短緊湊,令人稱絕,實(shí)際上很多算法實(shí)現(xiàn)堪稱完美:紅黑樹的插入,Batcher odd-event sort,漢諾伊的遞歸結(jié)構(gòu),背包的DP,快排的劃分,原地歸并,……你很難能再去減少一行或省去一個(gè)循環(huán)。自己寫過(guò)那么多年的C程序,也只能嘆息無(wú)法達(dá)到這種準(zhǔn)確、精煉、緊湊同時(shí)做到極高標(biāo)準(zhǔn)的水平。話說(shuō)這書還是1997年出版的呢。
        跟《算法導(dǎo)論》做個(gè)小比較:《算法導(dǎo)論》講太多算法性能分析和數(shù)學(xué)證明了,對(duì)更注重工程的一般軟件人員,這本算法書明顯更合適。
        唯一可惜的是,書里經(jīng)常提到的第5部分字符串算法一直沒(méi)有出版,實(shí)際上出版的第5部分是圖算法,不知道他老人家還有沒(méi)有精力把那部分也
        結(jié)論:可手邊常備:-)
      
  •     美國(guó)大學(xué)本科生課程“Algorithm and Data Structure”的指定教材,我偷懶,下了中文版來(lái)看,實(shí)在是忍不了翻譯,看回英文版。明明很簡(jiǎn)單的一句話能叫譯者說(shuō)的不明所以。真是譯成這樣不如不譯啊。。。
  •     翻譯質(zhì)量較差,像是未加任何處理的英文直譯,不符合中文閱讀習(xí)慣,另有不少不知所云的地方。如188頁(yè)的《6.10 關(guān)鍵字索引統(tǒng)計(jì)》中有這樣的敘述:“一種方法是計(jì)算0的個(gè)數(shù),然后再次掃描輸入a,使用兩個(gè)表示統(tǒng)計(jì)數(shù)的一個(gè)數(shù)組,把元素分布在臨時(shí)數(shù)組b中。”。為了不影響閱讀,我一般都直接看代碼(有些代碼也有bug,如172頁(yè)程序6.5 希爾排序的實(shí)現(xiàn))。。。。挺影響閱讀心情的
  •     Prof. Sedgewick is a noted authority on searching and sorting algorithms, and a former student of Knuth's. The text is authoritative, lucid, and detailed. It is also full of mistakes, poorly edited, and much of the code has serious and not so serious bugs.
      不說(shuō)算法的好與壞,至少做到正確,不誤人子弟吧,代碼中充斥著bug,加上折磨人的翻譯,難道非要自虐不成嗎?
  •     書是相當(dāng)?shù)暮?,翻譯的超級(jí)的爛啊,感覺(jué)是直譯的,直接按照英文單詞順序翻譯過(guò)來(lái)的,還有翻譯錯(cuò)誤的地方,簡(jiǎn)直無(wú)語(yǔ)了,拿本詞典自己看也比看中文的強(qiáng)。 還建議看看那本算法分析導(dǎo)論,數(shù)學(xué)知識(shí)比較多,寫的很好,不愧是算法大師和算法大師的高徒啊,呵呵。
  •     也許關(guān)于算法方面的最大的誤解,就是沒(méi)有意識(shí)到它是由關(guān)系密切而又非常不同的兩個(gè)部分組成的。
      
      對(duì)于一個(gè)給定的問(wèn)題,選擇哪一種算法才是最適合的?選定算法之后,在編程環(huán)境中又是如何實(shí)現(xiàn)這個(gè)算法,是使用已有的庫(kù)還是自己從頭開始編寫,是用 X 語(yǔ)言還是 Y 語(yǔ)言?這個(gè)算法實(shí)現(xiàn)和已有的程序結(jié)合得如何,需要對(duì)它進(jìn)行修改嗎?它的實(shí)際運(yùn)行速度是快是慢?
      
      以上這些,都是算法在實(shí)現(xiàn)階段需要考慮的問(wèn)題,這些問(wèn)題主要是和工程相關(guān)的,是大部分編程人員日常工作中最常見(jiàn)也是最重要的部分。
      
      另一方面,設(shè)計(jì)一種嶄新的算法,或者改進(jìn)一個(gè)已有的算法,并對(duì)這個(gè)算法進(jìn)行嚴(yán)密的分析以研究其性能特征,將它和已有的算法進(jìn)行對(duì)比以判斷孰優(yōu)孰劣,等等,這些問(wèn)題主要是和數(shù)學(xué)相關(guān)的,由一些算法 Guru 和研究人員(在守衛(wèi)森嚴(yán)的科技大樓內(nèi)秘密地)進(jìn)行。
      
      當(dāng)然,將算法簡(jiǎn)單地劃分為實(shí)現(xiàn)和設(shè)計(jì)/分析兩部分有點(diǎn)過(guò)于簡(jiǎn)單化了,因?yàn)樗鼈儗?shí)際上是無(wú)法分割的一個(gè)整體,比如說(shuō),離開分析的話,我們又怎么能確定算法的效率呢?而離開了效率的話,也就無(wú)所謂算法了,因?yàn)槿绻豢紤]時(shí)間和空間效率的話,那么問(wèn)題的任何一個(gè)正確的解就足以解決所有問(wèn)題了。
      
      不過(guò),即便如此,我們也應(yīng)該注意到,目前被廣泛使用的絕大部分算法,都已經(jīng)經(jīng)過(guò)了詳細(xì)而透徹的分析了,在很多時(shí)候,編程人員要做的就是根據(jù)已有的算法資料,選擇一個(gè)合適的算法,然后實(shí)現(xiàn)它,這就完了,至于對(duì)算法進(jìn)行分析的場(chǎng)景,一般來(lái)說(shuō)也就非常少了。
      
      如果對(duì)前面的幾段話做一個(gè)總結(jié),我們就得出了一個(gè)結(jié)論:比起學(xué)習(xí)算法分析,學(xué)習(xí)算法實(shí)現(xiàn)的相關(guān)知識(shí)要來(lái)得更有用和更實(shí)用。
      
      然而,不幸的是,市面上銷售的大部分算法書籍,以及人們推薦得最多的算法書籍,基本都是以算法分析為主,在這類算法書中,一個(gè)個(gè)優(yōu)美的算法被分解成支離破碎的數(shù)學(xué)研究對(duì)象,在這些書里面,你會(huì)看見(jiàn)嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)論證,完整的數(shù)學(xué)分析和(數(shù)學(xué)家寫算法書賺外快時(shí)最喜歡用的難看的)偽代碼,但是卻看不見(jiàn)從低效算法逐步向高效算法推進(jìn)的求精過(guò)程,看不見(jiàn)不同算法/數(shù)據(jù)結(jié)構(gòu)之間的相似性和差異性,因?yàn)樗鼈兌急恍⌒牡馗綦x開來(lái)了。
      
      這本《Algorithms in C》最難能可貴的地方就是,它是一本關(guān)注算法的實(shí)現(xiàn)和實(shí)用性的算法書:書中的示例程序使用的都是真實(shí)可運(yùn)行的 C 代碼;它詳細(xì)地講解了很多實(shí)際使用算法時(shí)會(huì)遇到的問(wèn)題,比如說(shuō),內(nèi)存占用、浮點(diǎn)數(shù)、隨機(jī)算法的安全性和庫(kù)的移植等問(wèn)題;它還給出算法的完整的 API 和 client 端示例,并列出算法的實(shí)驗(yàn)分析結(jié)果,配合簡(jiǎn)短的描述來(lái)完整地展示算法的運(yùn)行效率。
      
      以上這些,都是算法在實(shí)際應(yīng)用中需要關(guān)注的問(wèn)題,但是,即使拋開這些實(shí)用性優(yōu)點(diǎn)不說(shuō),這本書也是一本寫得非常好的算法書:書中使用了大量的圖片和圖表來(lái)演示算法的完整執(zhí)行過(guò)程,并且章節(jié)的安排也非常合理,新內(nèi)容可以很自然地引申出來(lái),沿著書一直讀下去可以看到如何對(duì)一個(gè)算法進(jìn)行改進(jìn),從低效到高效,再到最優(yōu)化,這是學(xué)習(xí)算法中最有趣而又最能體現(xiàn)算法之美的地方,而這些有趣的部分,在那些將算法分解得支離破碎的算法分析書中,是不可能看到的。
      
      ---
      
      補(bǔ)充:
      
      似乎有部分評(píng)論說(shuō)這本書的翻譯不好,這套書的中文版和英文影印版我都有,我覺(jué)得這本書的翻譯蠻不錯(cuò)的,也沒(méi)發(fā)現(xiàn)什么明顯的錯(cuò)誤。
      
      而且這套書原文的倒裝句比較多,讀起來(lái)比較慢,我個(gè)人還是推薦買中文版。
  •     用圖示化方式說(shuō)明算法的特點(diǎn),是本書的一大特色。
      只是翻譯者實(shí)在是欠罵,這么垃圾的翻譯還不如不譯,糟蹋了這么好的一本書?。?br />   封面上都寫上你的名字了,都不怕遭人罵嗎?!
      留給別人翻譯多好啊??!
  •     作者的主頁(yè)上好像也找不到,只有書中的code和errta(話說(shuō)我提交的edition3 的一個(gè)error貌似也無(wú)人理睬。)不知道有沒(méi)有人愿意討論下里面的習(xí)題?我剛看到棧那里。
      
      這個(gè)評(píng)論到底要多長(zhǎng)才行……
  •     P32 表2-4
      “當(dāng)M增加一倍時(shí),順序搜索的時(shí)間也增加一倍,但二分搜索幾乎不變”
      
      其中M當(dāng)為N。
      
      因?yàn)轫樞蛩阉鞯臅r(shí)間復(fù)雜度跟MN正比而二分搜索跟MlogN正比,顯而易見(jiàn)M增加時(shí)兩種算法耗時(shí)均線性遞增。
      
      嗯,我的評(píng)論很短么?居然不讓發(fā)表??好吧,我刷個(gè)屏看看。
      刷屏刷屏刷屏刷屏刷屏
  •     除去圖算法,第一至第四部分頁(yè)數(shù)不多,但是內(nèi)容詳實(shí)。學(xué)算法最需要的是什么?是想象力!想象數(shù)據(jù)結(jié)構(gòu)在內(nèi)存中是如何變化的,查看其中的奧秘學(xué)習(xí)其中的思想??墒撬惴y學(xué)啊,因?yàn)橛行?fù)雜算法不好想象。這本書從數(shù)據(jù)結(jié)構(gòu)到排序到搜索,介紹了每個(gè)分類里面的幾大經(jīng)典,各個(gè)都有配圖,比如原位排序的數(shù)值調(diào)整,二叉搜索樹的旋轉(zhuǎn)平衡,都有配圖詳細(xì)說(shuō)明。  書雖不厚,但是經(jīng)典的都寫到了,而且言簡(jiǎn)意賅通俗易懂。快速排序、堆排序、歸并排序等常用排序,二叉搜索、紅黑樹、哈希表、Trie樹、外部搜索,面面俱到。內(nèi)容詳實(shí),配圖生動(dòng),非常難得的一本好書,五星推薦。
  •     書是好書,不過(guò)還是推薦看原版的,翻譯得實(shí)在。。。而且明顯感覺(jué)不同的章節(jié)是不同的人翻的,雖然只寫了一個(gè)譯者
  •     在小百合算法版看到 ufx222 對(duì)這本書的評(píng)價(jià)才注意到這本書。引用他的評(píng)價(jià):
      
      “只推薦C語(yǔ)言的版本;而且不推薦看中文版,中文版翻譯得非常之差。這是一本非常重視算法實(shí)現(xiàn)的書,即使是資深的優(yōu)化程序的人也不會(huì)對(duì)Sedgewick的C程序有不滿。作者對(duì)于基本算法都給了很多很多形象的圖示?!?br />   
      看這本書前言的時(shí)候注意到作者 Robert Sedgewick 是 Knuth 的學(xué)生。
      
      當(dāng)參考書看過(guò)書中的幾段,如 quicksort, merge-sort, binary search tree, red-black tree。書中算法的實(shí)現(xiàn)的確很精巧。比如 merge 的實(shí)現(xiàn),書中使用的方法在拷貝數(shù)組時(shí),將其中一個(gè)數(shù)組反序拷貝,這樣合并時(shí)就可以很方便的處理數(shù)組邊界。介紹過(guò) 2-3-4 tree 以后再介紹了 red-black tree,通過(guò)將這兩者聯(lián)系起來(lái)使讀者更容易理解 red-black tree 的思想。在 balanced search tree 一章末尾還有各種平衡搜索樹在實(shí)際使用中性能的比較。我就是看到這個(gè)才明白 C++ STL 中的 map 等數(shù)據(jù)結(jié)構(gòu)為什么使用 red-black tree 而不使用其他的平衡搜索樹。
      
      看過(guò)的只是書中的一小部分,但已經(jīng)感受到本書對(duì)算法實(shí)現(xiàn)的重視,有不少漂亮的 trick。書中實(shí)現(xiàn)的代碼可以從作者網(wǎng)站上下載。
  •   請(qǐng)問(wèn)英文版在哪買的?
  •   我在taobao上找的打印版,eng原本,不是機(jī)械他們的出的。大概70rmb吧。
  •   四個(gè)月?
    看我能不能用四個(gè)月把這個(gè)本書看完。
  •   沒(méi)錯(cuò),直接讀代碼更好,看文字很郁悶...
  •   英文原版的已經(jīng)看到500多頁(yè),沒(méi)遇到很多bug。
    Prof. Sedgewick is a noted authority on searching and sorting algorithms, and a former student of Knuth's. The text is authoritative, lucid, and detailed. 對(duì)。
    It is also full of mistakes, poorly edited, and much of the code has serious and not so serious bugs. 錯(cuò)。
  •   其實(shí)說(shuō)白了就是學(xué)術(shù)也給工業(yè)的區(qū)別。不同目標(biāo)的方向和側(cè)重點(diǎn)都不同
  •   看完第一章併查集,我就被驚呆了,還不說(shuō)那些NB的配圖~~(>_<)~~
  •   《圖算法》還有一個(gè)優(yōu)點(diǎn),Sedgewick一直在書中引導(dǎo)讀者去思考各種圖算法的共性,在更高的層次上統(tǒng)一地看待圖算法
  •   @Silverbullettt
    《圖算法》我還沒(méi)怎么讀,但是有這本書的保證,還是很值得期待的。
  •   推薦 Algorithms 4th edition,算是本書的“升級(jí)版”(雖然示例代碼全變成了 Java 比較悲劇
  •   我怎么覺(jué)得讀起來(lái)難受的很,不通順
  •   你們讀過(guò)么?? 就亂評(píng)價(jià)
  •   翻譯之爛已經(jīng)到了無(wú)法忍受的地步,我就想知道用谷歌翻譯還會(huì)比這更爛么,這個(gè)叫霍紅衛(wèi)的大博導(dǎo)的母語(yǔ)是不是漢語(yǔ),還是她翻譯之后根本就沒(méi)勇氣再自己審一遍。
  •   神一般的翻譯
    我看哭了
    如果有空真該直接看英文的
  •   是啊,逼我們不得不學(xué)好英語(yǔ)啊
  •   英文版本的哪有賣啊???????????
  •   第一章,第一段就看不懂,句子p也不通。
  •   嗯,這個(gè)錯(cuò)是中文版里的,我手頭無(wú)英文版的c版本,下載了一個(gè)c++的,該版本無(wú)此問(wèn)題。
  •   別挑了,我拜讀了這位大姐翻譯的《圖算法》,里頭N多小錯(cuò)誤。。。
  •   不過(guò)書是好書!我很喜歡,塞吉威克老哥的書代碼很漂亮
  •   嗯,對(duì)于我這種看不進(jìn)去算法導(dǎo)論的人還是挺適合的……
  •   據(jù)說(shuō)翻譯不太理想。呵呵。有原文電子版么?
  •   我也想求英文電子版
  •   谷歌學(xué)術(shù)里面都有
  •   我也這么覺(jué)得,中文版的有時(shí)感覺(jué)那個(gè)句子實(shí)在太別扭了
  •   我也很想說(shuō),剛看幾頁(yè)實(shí)在受不了了...
  •   聽(tīng)你說(shuō)這么說(shuō),果斷買一本
  •   謝謝你的評(píng)論
  •   昨晚剛買了中文版的....
  •   為什么只推薦c版的,java版的怎么樣?
  •   唉,買了中文版的了,讀了前幾頁(yè),覺(jué)得有點(diǎn)別扭。。。
  •   我非常非常喜歡這本書的代碼實(shí)現(xiàn),Sedgewick真是了不起
  •   出第4版了,java的
  •   能看英文版的就別看中文版的吧;翻譯版的通常比較爛。
  •   只看了前面一點(diǎn) 目前看了不少數(shù)學(xué)方面的習(xí)題 很不滿 額
 

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

京ICP備13047387號(hào)-7