算法設(shè)計(jì)手冊(cè)

出版時(shí)間:2009-9  出版社:清華大學(xué)出版社  作者:斯基恩納  頁數(shù):706  
Tag標(biāo)簽:無  

前言

Most professional programmers that I've encountered are not well prepared to tackle algorithm design problems. This is a pity, because the techniques of algorithm design form one of the core practical technologies of computer science. Designing correct, efficient, and implementable algorithms for real-world problems requires access to two distinct bodies of knowledge:Techniques - Good algorithm designers understand several fundamental al-gorithm design techniques, including data structures, dynamic programming,depth-first search, backtracking, and heuristics. Perhaps the single most im-portant design technique is modeling, the art of abstracting a messy real-worldapplication into a clean problem suitable for algorithmic attack.Resources - Good algorithm designers stand on the shoulders of giants. Rather than laboring from scratch to produce a new algorithm for every task, they can figure out what is known about a particular problem. Rather than re-implementing popular algorithms from scratch, they seek existing imple- mentations to serve as a starting point. They are familiar with many classic algorithmic problems, which provide sufficient source material to model most any application.This book is intended as a manual on algorithm design, providing access tocombinatorial algorithm technology for both students and computer professionals.It is divided into two parts: Techniques and Resources, The former is a generalguide to techniques for the design and analysis of computer algorithms. The Re-sources section is intended for browsing and reference, and comprises the catalogof algorithmic resources, implementations, and an extensive bibliography.

內(nèi)容概要

本書是算法設(shè)計(jì)暢銷書的最新版本,是設(shè)計(jì)實(shí)用且高效算法的最全面指導(dǎo)書。本書揭密了算法的設(shè)計(jì)與分析,以簡(jiǎn)單易懂的寫作風(fēng)格,介紹了各種算法技術(shù),著重強(qiáng)調(diào)了算法分析,全書包括兩大部分,“技術(shù)”部分介紹了設(shè)計(jì)和分析計(jì)算機(jī)算法的各種方法,“資源”部分給出了大量的參考資源,以及算法實(shí)現(xiàn)的各種資源,此外,在作者的個(gè)人網(wǎng)址http://www.CS.sunysb.edu/~algorith/I-還提供了各種教學(xué)資源和參考材料,這些資源對(duì)讀者很有參考價(jià)值。    本書可以作為算法設(shè)計(jì)課程的主教材,也是程序人員、研究人員和學(xué)生的常備參考書。

作者簡(jiǎn)介

作者:(德國(guó))斯基恩納(Steven S.Skiena)

書籍目錄

I  Practical Algorithm Design 1 Introduction to Algorithm Design  1.1 Robot Tour Optimization  1.2  Selecting the Right Jobs  1.3   Reasoning about Correctness  1.4  Modeling the Problem  1.5  About the War Stories  1.6  War Story: Psychic Modeling  1.7  Exercises 2  Algorithm Analysis  2.1   The RAM Model of Computation  2.2  The Big Oh Notation  2.3  Growth Rates and Dominance Relations  2.4  Working with the Big Oh  2.5  Reasoning About Efficiency  2.6   Logarithms and Their Applications   2.7  Properties of Logarithms  2.8  War Story: Mystery of the Pyramids   2.9   Advanced Analysis (*)  2.10 Exercises 3  Data Structures  3.1   Contiguous vs. Linked Data Structures.  3.2   Stacks and Queues  3.3  Dictionaries  3.4  Binary Search Trees  3.5  Priority Queues  3.6 War Story: Stripping Triangulations  3.7 Hashing and Strings  3.8  Specialized Data Structures  3.9   War Story: String 'em Up  3.10 Exercises 4 Sorting and Searching  4.1   Applications of Sorting  4.2   Pragmatics of Sorting  4.3  Heapsort: Fast Sorting via Data Structures  4.4  War Story: Give me a Ticket on an Airplane  4.5   Mergesort: Sorting by Divide-and-Conquer  4.6   Quicksort: Sorting by Randomization  4.7  Distribution Sort: Sorting via Bucketing  4.8  War Story: Skiena for the Defense  4.9   Binary Search and Related Algorithms  4.10 Divide-and-Conquer  4.11 Exercises   5  Graph Traversal  5.1 Flavors of Graphs  5.2   Data Structures for Graphs  5.3   War Story: I was a Victim of Moore's Law  5.4  War Story: Getting the Graph  5.5  Traversing a Graph  5.6  Breadth-First Search  5.7  Applications of Breadth-First Search  5.8  Depth-First Search  5.9  Applications of Depth-First Search  5.10 Depth-First Search on Directed Graphs  5.11 Exercises 6  Weighted Graph Algorithms  6.1   Minimum Spanning Trees  6.2   War Story: Nothing but Nets  6.3  Shortest Paths  6.4   Wax Story: Dialing for Documents  6.5   Network Flows and Bipartite Matching  6.6  Design Graphs, Not Algorithms  6.7   Exercises……

章節(jié)摘錄

插圖:3.7.2 Efficient String Matching via HashingStrings are sequences of characters where the order of the characters matters, sinceALGORITHM is different than LOGARITHM. Text strings are fundamental to ahost of computing applications, from programming language parsing/compilation,to web search engines, to biological sequence analysis.The primary data structure for representing strings is an array of characters.This allows us constant-time access to the ith character of the string. Some auxiliaryinformation must be maintained to mark the end of the string either a specialend-of-string character or (perhaps more usefully) a count of the n characters inthe string.The most fundamental operation on text strings is substring search, namely:Problem: Substring Pattern MatchingInput: A text string t and a pattern string p.Output: Does t contain the pattern p as a substring, and if so where?

編輯推薦

《算法設(shè)計(jì)手冊(cè)(第2版)》:大學(xué)計(jì)算機(jī)教育國(guó)外著名教材系列(影印版)

圖書封面

圖書標(biāo)簽Tags

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


    算法設(shè)計(jì)手冊(cè) PDF格式下載


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

 
 

  •   相當(dāng)有水準(zhǔn)的一套書,英文也不難。不過還是喜歡看中文
  •   案頭必備
  •   這本書適合做大學(xué)教材
  •   很實(shí)際,特別是第二章,基本每頁都有實(shí)戰(zhàn)價(jià)值
  •   確實(shí)是一本好書 經(jīng)典的書就是不一樣 值得推薦
  •   此書作者精于recursive codding,除了Backtracking和Depth-First Search這種本來就recursive的算法不說,一些很小的subroutine也用了recursive式的編寫,其實(shí)沒有必要,普通的code個(gè)人感覺很容易被理解和控制,總的來說,本書還是很不錯(cuò)的。 前期Sorting里的例子給出了一些典型,但沒有細(xì)數(shù)家珍,以實(shí)用性很強(qiáng)的Quick Sorting結(jié)尾。 Graph部分略顯晦澀,主要問題是作者在給完源碼后,僅作了少量的文字描述和分析,對(duì)于初學(xué)者,這樣的稱述理解起來是很困難的,不過通過解答Graph的習(xí)題,可以加深理解,但得有足夠的鉆研精神。Graph的算法還是比較全的,基礎(chǔ)的一些都有涉及,但就是過于言簡(jiǎn)意賅了,關(guān)于Graph,推薦閱讀George T.Heineman的那本算法書,介紹的比較細(xì)膩,但是覆蓋面小很多。 接著就是Backtracking,Heuristic Methods,這里情況比Graph好一些,給出了例子和運(yùn)行結(jié)果,便于讀者自行分析。 Heuristic Methods里著重強(qiáng)調(diào)了Simulated Annealling,也是出于實(shí)用性的目的,前面的例子可以不必細(xì)看,基本是拿來反襯Simulated Annea...lling的。Backtracking這一部分比較難,需要一定時(shí)間和基礎(chǔ)才能理解。 Dynamic Programming的難度在Backtracking之上,基本上可以粗略地理解為對(duì)recursive coding的順序化,這要求對(duì)recursive coding本身具有非常嫻熟的掌握,也側(cè)面解釋了為什么作者如此自覺或下意識(shí)地在方方面面使用recursive coding,這是極具技巧性和挑戰(zhàn)性的一章,一般的讀者可以略去此章。 關(guān)于War Story,推薦一讀,但不要深究。 后半部分基本上把常見問題的算法介紹給全了,這一塊的Visualization做的相當(dāng)不錯(cuò),基本都有可視化的圖形用于加深記憶和理解,Head First在這方面可以說是走向了一個(gè)極端,當(dāng)然是比較好的極端,在我看來。算法介紹和實(shí)際的算法完整度是差別很大的,但至少它告訴你手頭問題的學(xué)名是什么,也給了幾個(gè)鏈接,也算是領(lǐng)進(jìn)門了吧,剩下的修行就只能靠自己了。 總結(jié),該書適用于偏好實(shí)踐的讀者,所羅列的算法不一定很復(fù)雜,但基本很實(shí)用,而且書中比較注意Visualization,并一直堅(jiān)持用C給出源代碼,這在一定程度上方便了讀者進(jìn)行理解,但Graph的部分過于言簡(jiǎn)意賅,讀者需要一定的分析能力,或者要進(jìn)行一些補(bǔ)充閱讀。Hint:C和現(xiàn)在的Java,C#有著本質(zhì)的區(qū)別,尤其是像C#這種具有Garbage Collection的現(xiàn)代編程語言,pointer基本被棄用了,相對(duì)的補(bǔ)償則是簡(jiǎn)化了內(nèi)存管理和編程過程,當(dāng)然還有一個(gè)超棒的IDE:Visual Studio,與C相比,孰優(yōu)孰劣,只能仁者見仁,智者見智了。我是偏好C#的,原因主要有2點(diǎn),1是不碰硬件編程,2是這個(gè)IDE實(shí)在是太棒了,徹底把我征服,由此可見MicroSoft還是很老道的。 閱讀更多 ›
  •   如果你要參加acm或icpc建議你選購(gòu)這本書并再購(gòu)買一本此作者的編程挑戰(zhàn)。
  •   此書讓我受益匪淺。全書分為兩部分1. 和其他算法書一樣,對(duì)各類算法(比如排序)給出難度適中的介紹。War Stories是作者遇到的實(shí)際問題,讓你知道這些算法是如何應(yīng)用于實(shí)際問題的。2. 作為一本手冊(cè),對(duì)各類問題給出了菜單式指導(dǎo)。這是此書的獨(dú)特之處。比如找子串,不同情況下該用哪些不同算法。它給出的文獻(xiàn)將各個(gè)問題研究到極致。這是一本很好的手冊(cè),也可以最為準(zhǔn)備程序員面試的材料。
  •   例子很好。講解精煉!!
  •   比那個(gè)什么算法導(dǎo)論要簡(jiǎn)單明了一些
  •   書的質(zhì)量還是很好的,書也很好.
  •   紙張?zhí)〉强梢匀淌?,?nèi)容很好,有實(shí)際問題做引導(dǎo),算法也是一步步提升難度的,簡(jiǎn)單的集中在前幾章,不會(huì)讓人看不懂望而卻步
  •   沒有算法導(dǎo)論那么晦澀,接近實(shí)際情況而且有作者很多的經(jīng)驗(yàn),重點(diǎn)推薦動(dòng)態(tài)規(guī)劃,深入淺出。
  •   該書封面和裝訂都沒有任何問題,但是紙張確讓人無法忍受,非常之薄,每一頁都透著反面的內(nèi)容,導(dǎo)致閱讀非常吃力,真的是“瞎了我的狗眼”。。。
  •   看上不去,鍛煉一下鳥語
  •   有代碼實(shí)現(xiàn),具體書評(píng)可以到豆瓣或者亞馬遜美國(guó)網(wǎng)站了解,挺好的一本書,偏實(shí)踐,部分算法有時(shí)候與算法導(dǎo)論的思想不一樣。還有一本好像叫《algorithms in a nutshell》也挺不錯(cuò)的,也是注重實(shí)踐的,比較各個(gè)算法的運(yùn)行時(shí)間
  •     看著看著時(shí)而就覺得不明白了
      看到amazon上有人說
      This book isn't always the easiest to understand..
      . Consider the explanation of Djikstra's Algorithm on p. 206 of the 2nd ed:
      
      ...
      我才放下心來.
      他就是沒講明白么,真是的!
      
      
  •     第一部分討論實(shí)用算法思路;第二部分實(shí)例分析極其討喜。
      解釋直觀易懂,并提供了大量的參考信息,相當(dāng)適合自己學(xué)習(xí)和額外研究用。
      每晚看一兩個(gè)章節(jié)或例子相當(dāng)愉快。
      不過印刷紙質(zhì)頗為低劣……=_=
      
      居家旅行,閑時(shí)翻閱,面試備戰(zhàn)的最佳選擇……
      
      http://www.cs.sunysb.edu/~algorith/video-lectures/
      內(nèi)有1997和2007的視音頻和slides
  •   個(gè)人覺得CLRS對(duì)算法的介紹太形式化了。。。自己中文版的CLRS丟了去書店本來想尋一本CLRS的英文版,結(jié)果只買到這本。。。可讀性相當(dāng)不錯(cuò)的說
  •   嗯,這書還不錯(cuò)
  •   雲(yún)妹,那么方便搞本原版啊..
  •   好貴的啊..每次都同學(xué)回國(guó)都得求他們帶影印版啊=.=
  •   我去,朋友每次出國(guó)我都要求帶原版..
  •   我記得貌似這本書影印版被閹割過了..
  •   內(nèi)容的話我不確定(其實(shí)一直沒讀完Orz), 但是影印版是沒有index了, 出版社腦子被驢踢了....=_=###
 

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

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