
| fundamentals chapter 1. introduction 1.1 algorithms 1.2 a sample problem: connectivity 1.3 union-find algorithms 1.4 perspective 1.5 summary of topics chapter 2. principles of algorithm analysis 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 limitations data structures 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 strings 3.7 compound data structures chapter 4. abstract data types 4.1 collections of items 4.2 pushdown stack adt 4.3 examples of stack adt clients 4.4 stack adt implementations 4.5 generic implementations 4.6 creation of a new adt 4.7 fifo queues and generalized queues 4.8 duplicate and index items 4.9 first-class adts 4.10 application-based adt example 4.11 perspective chapter 5. recursion and trees 5.1 recursive algorithms 5.2 divide and conquer 5.3 dynamic programming 5.4 trees 5.5 mathematical properties of trees 5.6 tree traversal 5.7 recursive binary-tree algorithms 5.8 graph traversal 5.9 perspective sorting chapter 6. elementary sorting methods 6.1 rules of the game 6.2 generic sort implementations 6.3 selection sort 6.4 insertion sort 6.5 bubble sort 6.6 performance characteristics of elementary-sorts 6.7 algorithm visualization 6.8 shellsort 6.9 sorting linked lists 6.10 key-indexed counting chapter 7. quicksort 7.1 the basic algorithm 7.2 performance characteristics of quicksort 7.3 stack size 7.4 small subfiles 7.5 median-of-three partitioning 7.6 duplicate keys 7.7 strings and vectors 7.8 selection chapter 8. merging and mergesort 8.1 two-way merging 8.2 abstract in-place merge 8.3 top-down mergesort 8.4 improvements to the basic algorithm 8.5 bottom-up mergesort 8.6 performance characteristics of mergesort 8.7 linked-list implementations of mergesort 8.8 recursion revisited chapter 9. priority queues and heapsort 9.1 elementary implementations 9.2 heap data structure 9.3 algorithms on heaps 9.4 heapsort 9.5 priority-queue adt 9.6 priority queues for client arrays 9.7 binomial queues chapter 1o. radix sorting 10.1 bits, bytes, and words 10.2 binary quicksort 10.3 msd radix sort 10.4 three-way radix quicksort 10.5 lsd radix sort 10.6 performance characteristics of radix sorts 10.7 sublinear-time sorts chapter 11 . special-purpose sorting methods 11.1 batcher's odd-even mergesort 11.2 sorting networks 11.3 sorting in place 11.4 external sorting 11.5 sort-merge implementations 11.6 parallel sort-merge searching chapter 12. symbol tables and bsts 12.1 symbol-table abstract data type 12.2 key-indexed search 12.3 sequential search 12.4 binary search 12.5 index implementations with symbol tables 12.6 binary search trees 12.7 performance characteristics of bsts 12.8 insertion at the root in bsts 12.9 bst implementations of other adt operations chapter 13. balanced trees 13.1 randomized bsts 13.2 splay bsts 13.3 top-down 2-3-4 trees 13.4 red-black trees 13.5 skip lists 13.6 performance characteristics chapter 14. hashing 14.1 hash functions 14.2 separate chaining 14.3 linear probing 14.4 double hashing 14.5 dynamic hash tables 14.6 perspective chapter 15. radix search 15.1 digital search trees 15.2 tries 15.3 patricia tries 15.4 multiway tries and tsts 15.5 text-string-index applications chapter 16. external searching 16.1 rules of the game 16.2 indexed sequential access 16.3 b trees 16.4 extendible hashing 16.5 perspective appendix index |
商品评论(0条)