Skip to content

Latest commit

 

History

History
77 lines (72 loc) · 4.78 KB

REFERENCES.md

File metadata and controls

77 lines (72 loc) · 4.78 KB

C and C++: [PPPC++], [EC++], [EMC++], [KNR], [HFC], [RNG11] and [SP11].

Design and Architecture: [GOF] and [HFDP].

Data Structure and Algorithm

  • Deque
    • Double-ended queue, or deque. [GT], ch 2, page 85.
    • Deque. [CLRS], ch. 10, page 236.
  • Extendable Array (Vector)
    • Analyzing an Extendable Array Implementation. [GT], ch. 1, pages 39-41.
    • Index-Based Lists. [GT], ch. 2, pages 60-62.
  • Linked List
    • Linked Lists. [GT], ch. 2, pages 63-67.
    • Linked lists. [CLRS], ch. 10, pages 236-240.
    • Arrays and linked lists. [AYB], ch. 2, pages 24-30.
  • Stack
    • Stacks. [GT], ch. 2, pages 53-54.
    • Stacks. [CLRS], ch. 10, pages 232-233.
    • The stack. [AYB], ch. 3, page 42.
  • Queue
    • Queues. [GT], ch. 2, pages 57-59.
    • Queues. [CLRS], ch. 10, pages 234-235.
  • Heap
    • Heaps. [CLRS], ch. 6, pages 151-159.
  • Priority Queue
    • Priority queues. [CLRS], ch. 6, pages 162-164.
  • Tree
    • Representing rooted trees. [CLRS], ch. 10, pages 246-247.
    • Binary Search Trees. [CLRS], ch. 12, pages 286-298.
    • Red-Black Trees. [CLRS], ch. 13, pages 308-329.
    • Trees. [GT], ch. 2, pages 68-83.
    • Binary Search Trees. [GT], ch. 3, pages 94-100.
    • Index-Based Searching. [GT], ch. 3, pages 104-106.
    • Red-Black Trees. [GT], ch. 4, pages 126-129.
    • Order statistic tree. Available at https://en.wikipedia.org/wiki/Order_statistic_tree
  • Sorting
    • Insertion sort. [CLRS], ch. 2, pages 16-20.
    • Selection sort. [CLRS], ch. 2, page 29.
    • The divide-and-conquer approach. [CLRS], ch. 2, pages 30-34.
    • Bubblesort. [CLRS], ch. 2, page 40.
    • The heapsort algorithm. [CLRS], ch. 6, pages 159-161.
    • Quicksort. [CLRS], ch. 7, pages 170-190.
    • Selection sort. [AYB], ch. 2, pages 32-35.
    • Quicksort. [AYB], ch. 4, pages 60-71.
  • Searching
    • The Binary Search Algorithm. [GT], ch. 3, pages 91-93.
    • Linear search. [CLRS], ch. 2, page 22.
    • Binary search. [CLRS], ch. 2, pages 39.
    • Binary search. [AYB], ch. 1, pages 3-9.
  • Range Queries
    • Range Queries. [GT], ch. 3, pages 101-103.
  • Maximum Subarray
    • The maximum-subarray problem. [CLRS], ch. 4, pages 68-75.
    • A Case Study in Algorithm Analysis. [GT], ch. 1, pages 29-33.
  • Strassen’s Matrix Multiplication
    • Strassen’s algorithm for matrix multiplication. [CLRS], ch. 4, pages 75-82.
  • Josephus problem
    • Josephus problem. [GT], ch. 2, page 87.
    • Josephus problem. [GT], ch. 3, page 114.
  • Matrix
    • Matrices and matrix operations. [CLRS], Appendix D, pages 1217-1222.

Bibliography

  • [AYB] Aditya Y. Bhargava. Grokking Algorithms. Manning Publication, 2016. ISBN 1617292230.
  • [RNG11] Walter E. Brown. Random Number Generation in C++11. ISO/IEC JTC1/SC22/WG21 document N3551, 2013-03-12. Available at https://isocpp.org/files/papers/n3551.pdf
  • [CLRS] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. Introduction to Algorithms (3rd ed.). MIT Press, 2009. ISBN 0262033844.
  • [HFDP] Eric Freeman, Elisabeth Robson, Kathy Sierra and Bert Bates. Head First Design Patterns: A Brain-Friendly Guide. O'Reilly Media, 2004. ISBN 0596007124.
  • [GOF] Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. ISBN 0201633612.
  • [GT] Michael T. Goodrich and Roberto Tamassia. Algorithm Design and Applications. Wiley, 2014. ISBN 1118335910.
  • [HFC] David Griffiths and Dawn Griffiths. Head First C: A Brain-Friendly Guide. O'Reilly Media, 2012. ISBN 1449399916.
  • [KNR] Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language (2nd ed.). Prentice Hall, 1988. ISBN 0131103628.
  • [SP11] David Kieras. Using C++11’s Smart Pointers. EECS Department, University of Michigan, June 2016. Available at http://umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf
  • [EC++] Scott Meyers. Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd ed.). Addison-Wesley Professional, 2005. ISBN 0321334876.
  • [EMC++] Scott Meyers. Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14. O'Reilly Media, 2014. ISBN 1491903996.
  • [PPPC++] Bjarne Stroustrup. Programming: Principles and Practice Using C++ (2nd ed.). Addison-Wesley Professional, 2014. ISBN 0321992784.