Kyle Loudon是美國加州洛斯加托斯Jeppesen Dataplan公司的一名軟件工程師,主管圖形接口開發小組,主攻航跡規劃軟件的研發,這些軟件主要用於商業航空公司、私營航空部門和其他一些航空製造業。在來到Jeppesen之前,Kyle在IBM公司是一名係統程序員。在技術上,Kyle主要對操作係統、網絡、人機交互等領域感興趣。1992年,Kyle在普渡大學拿到瞭計算機科學學士學位,並取得瞭法語的第二學位,同時他還被選入斐陶斐榮譽學會(美國大學優等生之榮譽學會)。他在普渡大學計算機係教瞭三年的計算機課程。在這期間,他完成瞭他個人的第一本書《Understanding Computers》,這本書用理論結閤實踐的方式介紹計算機的方方麵麵。如今,盡管他繼續工作在矽榖的軟件業,但他仍然堅韌不拔地在追求一個更高的學位。
除瞭計算機,Kyle多年來喜歡打網球、教網球。他還喜歡山地騎行、滑冰,偶爾也和朋友們一起參加高爾夫課程。另外,Kyle還喜歡各種形式的戲劇、美食,以及某些風格的音樂和藝術;他期望成為鋼琴傢和藝術傢,但希望渺茫。他現在在Jeppesen的工作是從他1992年開始駕駛飛機之後找到的。現在,他是一個擁有美國聯邦航空局頒發的商業飛行員執照的飛行員。
This book offers robust solutions for everyday programming tasks, providing all the necessary information to
understand and use common programming techniques. It includes implementations and real-world examples of
each data structure in the text and full source code on the accompanying website
(http://examples.oreilly.com/masteralgoc/). Intended for anyone with a basic understanding of the C language.
Preface
When I first thought about writing this book, I immediately thought of O'Reilly & Associates to publish it. They were the first publisher
I contacted, and the one I most wanted to work with because of their tradition of books covering "just the facts." This approach is not
what one normally thinks of in connection with books on data structures and algorithms. When one studies data structures and
algorithms, normally there is a fair amount of time spent on proving their correctness rigorously. Consequently, many books on this
subject have an academic feel about them, and real details such as implementation and application are left to be resolved
elsewhere. This book covers how and why certain data structures and algorithms work, real applications that use them (including
many examples), and their implementation. Mathematical rigor appears only to the extent necessary in explanations.
Naturally, I was very happy that O'Reilly & Associates saw value in a book that covered this aspect of the subject. This preface
contains some of the reasons I think you will find this book valuable as well. It also covers certain aspects of the code in the book,
defines a few conventions, and gratefully acknowledges the people who played a part in the book's creation.
Bookmarks
Main Page
Table of content
Copyright
Preface
Organization
Key Features
About the Code
Conventions
How to Contact Us
Acknowledgments
Part I: Preliminaries
Chapter 1. Introduction
1.1 An Introduction to Data Structures
1.2 An Introduction to Algorithms
1.3 A Bit About Software Engineering
1.4 How to Use This Book
Chapter 2. Pointer Manipulation
2.1 Pointer Fundamentals
2.2 Storage Allocation
2.3 Aggregates and Pointer Arithmetic
2.4 Pointers as Parameters to Functions
2.5 Generic Pointers and Casts
2.6 Function Pointers
2.7 Questions and Answers
2.8 Related Topics
Chapter 3. Recursion
3.1 Basic Recursion
3.2 Tail Recursion
3.3 Questions and Answers
3.4 Related Topics
Chapter 4. Analysis of Algorithms
4.1 Worst-Case Analysis
4.2 O-Notation
4.3 Computational Complexity
4.4 Analysis Example: Insertion Sort
4.5 Questions and Answers
4.6 Related Topics
Part II: Data Structures
Chapter 5. Linked Lists
5.1 Description of Linked Lists
5.2 Interface for Linked Lists
5.3 Implementation and Analysis of Linked Lists
5.4 Linked List Example: Frame Management
5.5 Description of Doubly-Linked Lists
5.6 Interface for Doubly-Linked Lists
5.7 Implementation and Analysis of Doubly Linked Lists
5.8 Description of Circular Lists
5.9 Interface for Circular Lists
5.10 Implementation and Analysis of Circular Lists
5.11 Circular List Example: Second-Chance Page Replacement
5.12 Questions and Answers
5.13 Related Topics
Chapter 6. Stacks and Queues
6.1 Description of Stacks
6.2 Interface for Stacks
6.3 Implementation and Analysis of Stacks
6.4 Description of Queues
6.5 Interface for Queues
6.6 Implementation and Analysis of Queues
6.7 Queue Example: Event Handling
6.8 Questions and Answers
6.9 Related Topics
Chapter 7. Sets
7.1 Description of Sets
7.2 Interface for Sets
7.3 Implementation and Analysis of Sets
7.4 Set Example: Set Covering
7.5 Questions and Answers
7.6 Related Topics
Chapter 8. Hash Tables
8.1 Description of Chained Hash Tables
8.2 Interface for Chained Hash Tables
8.3 Implementation and Analysis of Chained Hash Tables
8.4 Chained Hash Table Example: Symbol Tables
8.5 Description of Open-Addressed Hash Tables
8.6 Interface for Open-Addressed Hash Tables
8.7 Implementation and Analysisof Open Addressed Hash Tables
8.8 Questions and Answers
8.9 Related Topics
Chapter 9. Trees
9.1 Description of Binary Trees
9.2 Interface for Binary Trees
9.3 Implementation and Analysis of Binary Trees
9.4 Binary Tree Example: Expression Processing
9.5 Description of Binary Search Trees
9.6 Interface for Binary Search Trees
9.7 Implementation and Analysis of Binary Search Trees
9.8 Questions and Answers
9.9 Related Topics
Chapter 10. Heaps and Priority Queues
10.1 Description of Heaps
10.2 Interface for Heaps
10.3 Implementation and Analysis of Heaps
10.4 Description of Priority Queues
10.5 Interface for Priority Queues
10.6 Implementation and Analysis of Priority Queues
10.7 Priority Queue Example: Parcel Sorting
10.8 Questions and Answers
10.9 Related Topics
Chapter 11. Graphs
11.1 Description of Graphs
11.2 Interface for Graphs
11.3 Implementation and Analysis of Graphs
11.4 Graph Example: Counting Network Hops
11.5 Graph Example: Topological Sorting
11.6 Questions and Answers
11.7 Related Topics
Part III: Algorithms
Chapter 12. Sorting and Searching
12.1 Description of Insertion Sort
12.2 Interface for Insertion Sort
12.3 Implementation and Analysis of Insertion Sort
12.4 Description of Quicksort
12.5 Interface for Quicksort
12.6 Implementation and Analysis of Quicksort
12.7 Quicksort Example: Directory Listings
12.8 Description of Merge Sort
12.9 Interface for Merge Sort
12.10 Implementation and Analysis of Merge Sort
12.11 Description of Counting Sort
12.12 Interface for Counting Sort
12.13 Implementation and Analysis of Counting Sort
12.14 Description of Radix Sort
12.15 Interface for Radix Sort
12.16 Implementation and Analysis of Radix Sort
12.17 Description of Binary Search
12.18 Interface for Binary Search
12.19 Implementation and Analysis of Binary Search
12.20 Binary Search Example: Spell Checking
12.21 Questions and Answers
12.22 Related Topics
Chapter 13. Numerical Methods
13.1 Description of Polynomial Interpolation
13.2 Interface for Polynomial Interpolation
13.3 Implementation and Analysis of Polynomial Interpolation
13.4 Description of Least-Squares Estimation
13.5 Interface for Least-Squares Estimation
13.6 Implementation and Analysis of Least-Squares Estimation
13.7 Description of the Solution of Equations
13.8 Interface for the Solution of Equations
13.9 Implementation and Analysis of the Solution of Equations
13.10 Questions and Answers
13.11 Related Topics
Chapter 14. Data Compression
14.1 Description of Bit Operations
14.2 Interface for Bit Operations
14.3 Implementation and Analysis of Bit Operations
14.4 Description of Huffman Coding
14.5 Interface for Huffman Coding
14.6 Implementation and Analysis of Huffman Coding
14.7 Huffman Coding Example: Optimized Networking
14.8 Description of LZ77
14.9 Interface for LZ77
14.10 Implementation and Analysis of LZ77
14.11 Questions and Answers
14.12 Related Topics
Chapter 15. Data Encryption
15.1 Description of DES
15.2 Interface for DES
15.3 Implementation and Analysis of DES
15.4 DES Example: Block Cipher Modes
15.5 Description of RSA
15.6 Interface for RSA
15.7 Implementation and Analysis of RSA
15.8 Questions and Answers
15.9 Related Topics
Chapter 16. Graph Algorithms
16.1 Description of Minimum Spanning Trees
16.2 Interface for Minimum Spanning Trees
16.3 Implementation and Analysis of Minimum Spanning Trees
16.4 Description of Shortest Paths
16.5 Interface for Shortest Paths
16.6 Implementation and Analysis of Shortest Paths
16.7 Shortest Paths Example: Routing Tables
16.8 Description of the Traveling-Salesman Problem
16.9 Interface for the Traveling-Salesman Problem
16.10 Implementation and Analysis of the Traveling-Salesman Problem
16.11 Questions and Answers
16.12 Related Topics
Chapter 17. Geometric Algorithms
17.1 Description of Testing Whether Line Segments Intersect
17.2 Interface for Testing Whether Line Segments Intersect
17.3 Implementation and Analysis of Testing Whether Line Segments Intersect
17.4 Description of Convex Hulls
17.5 Interface for Convex Hulls
17.6 Implementation and Analysis of Convex Hulls
17.7 Description of Arc Length on Spherical Surfaces
17.8 Interface for Arc Length on Spherical Surfaces
17.9 Implementation and Analysis of Arc Length on Spherical Surfaces
17.10 Arc Length Example: Approximating Distances on Earth
17.11 Questions and Answers
17.12 Related Topics
Colophon
index
發表於2024-11-07
Mastering Algorithms with C 2024 pdf epub mobi 電子書 下載
這是繼《數據結構與算法分析:C語言描述》和《算法技術手冊》後又一本適用於算法、數據結構新手的經典書。但是後麵數值計算、數據壓縮、數據加密、圖算法、幾何算法那幾章,每章就寫20+頁,有點兒坑瞭~但在熟悉瞭《C Interface and Implementations》和《Object-oriented Prog...
評分本書的最大特點是有源代碼,所以非常非常適閤大一大二的同學用來完成數據結構的大作業,自己寫個測試用例就好瞭……另外,配圖非常好,看起來非常舒服。書中的例子隻能說是完成瞭基本功能,有些例子還有可以優化的地方。 隻看過中文版,有些句子完全和上下文無關,不清楚是原...
評分這是一本經典的關於C語言的數據結構和算法的書籍,年代比較久遠瞭,但裏麵的內容完全沒有過時。對於學生和剛工作不久的工程師來說,絕對是一本比較好的打好基礎的書。書中有的完整的源代碼和示例,較易理解其算法過程。齣版商是國外知名的O'Reilly,這個就不用多介紹瞭,嗬嗬。...
評分本書的最大特點是有源代碼,所以非常非常適閤大一大二的同學用來完成數據結構的大作業,自己寫個測試用例就好瞭……另外,配圖非常好,看起來非常舒服。書中的例子隻能說是完成瞭基本功能,有些例子還有可以優化的地方。 隻看過中文版,有些句子完全和上下文無關,不清楚是原...
評分看瞭介紹,很想讀一下,不知道哪裏能買到。剛看瞭幾個網上書店,貌似都沒有。改天去書店看看,這個價錢應該還是能接受瞭。上學的朋友們估計很快也能在圖書館藉到瞭,也省的花錢瞭。 我比較關注這段介紹:具體實現都采用正式的C語言代碼而不是僞代碼,在很多數據結構和算法的實...
圖書標籤: 算法 C Algorithms 計算機 數據結構 Algorithm 編程 programming
講解淺入淺齣,適閤簡單瞭解。優點是附代碼讓人有動手欲望。
評分副作用是教你如何寫C語言程序,尤其是建立C語言庫
評分跟著書的第二部分把Data structure寫瞭一遍。這本書看上去很厚,實際上很大一部分都是代碼,而且文字很多一部分都是重復的,所以真正的內容不是很多。 優點: 1. 有C語言代碼實例,並且作者在很多平颱上測試過,代碼是沒有問題的 缺點: 1. 數據結構部分都是用linked list來做的,所有有些操作的效率還是比較低的; 2. 語言不是很容易理解,讀起來有點吃力(可能是我英語太差瞭)
評分同上,實際工作總算法用得少學習進度就停滯瞭
評分同上,實際工作總算法用得少學習進度就停滯瞭
Mastering Algorithms with C 2024 pdf epub mobi 電子書 下載