{"version":1,"pages":[{"id":"2Jpo3wfQJ3T8kBmMwTKi","title":"Fall 2025 Textbook","pathname":"/cs61b-textbook-fall-2025","siteSpaceId":"sitesp_puafv","description":""},{"id":"jBVbYooGJy3KgYcyi9Fk","title":"Contributors","pathname":"/cs61b-textbook-fall-2025/readme-1","siteSpaceId":"sitesp_puafv","description":"61B Course Staff who helped contribute to this amazing 61Book!"},{"id":"3rYRDEDH2BW4UxM4lp3X","title":"DISCLAIMER","pathname":"/cs61b-textbook-fall-2025/disclaimer","siteSpaceId":"sitesp_puafv","description":""},{"id":"9yEIsPtmj9CzziQrZ6Mq","title":"1. Introduction","pathname":"/cs61b-textbook-fall-2025/1.-introduction","siteSpaceId":"sitesp_puafv","description":""},{"id":"RuDWOn4C9G7hQPEZLnTa","title":"1.1 Your First Java Program","pathname":"/cs61b-textbook-fall-2025/1.-introduction/1.1-your-first-java-program","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"xenXwOSOT2FIuVDa4uPJ","title":"1.2 Java Workflow","pathname":"/cs61b-textbook-fall-2025/1.-introduction/1.2-java-workflow","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"sgCognblygsJvrcA0sYB","title":"1.3 Basic Java Features","pathname":"/cs61b-textbook-fall-2025/1.-introduction/1.3-basic-java-features","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"1. Introduction"}]},{"id":"P1mo9WeJFW4eEPJDGHHx","title":"2. Defining and Using Classes","pathname":"/cs61b-textbook-fall-2025/2.-defining-and-using-classes","siteSpaceId":"sitesp_puafv","description":""},{"id":"tC3X6bmBQf5ahcreUf96","title":"3. References, Recursion, and Lists","pathname":"/cs61b-textbook-fall-2025/3.-references-recursion-and-lists","siteSpaceId":"sitesp_puafv","description":""},{"id":"8XambibkwjNG5HPcQZLo","title":"4. SLLists","pathname":"/cs61b-textbook-fall-2025/4.-sllists","siteSpaceId":"sitesp_puafv","description":""},{"id":"TWsTaISuBPJWeZmpEk3n","title":"5. DLLists","pathname":"/cs61b-textbook-fall-2025/5.-dllists","siteSpaceId":"sitesp_puafv","description":""},{"id":"yNbYbsBrWXzRkaaziY1K","title":"6. Arrays","pathname":"/cs61b-textbook-fall-2025/6.-arrays","siteSpaceId":"sitesp_puafv","description":""},{"id":"sl503eJ5JhqQXXncJLyF","title":"7. Testing","pathname":"/cs61b-textbook-fall-2025/7.-testing","siteSpaceId":"sitesp_puafv","description":""},{"id":"wth0dGGDgV7drNH4VBUs","title":"8. ArrayList","pathname":"/cs61b-textbook-fall-2025/8.-arraylist","siteSpaceId":"sitesp_puafv","description":""},{"id":"a6l9VpcgpJsNs5Qhx4m0","title":"9. Inheritance I: Interface and Implementation Inheritance","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance","siteSpaceId":"sitesp_puafv","description":""},{"id":"0ZUzHDs0eNuSCE7tHlET","title":"9.1 The Problem of Generality","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.1-the-problem-of-generality","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"RD9sCm52FJ9p3YkJ2nBV","title":"9.2 Hypernyms, Hyponyms, and the Implements Keyword","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.2-hypernyms-hyponyms-and-the-implements-keyword","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"HIGLFnwV3X7oJ8uAdnsh","title":"9.3 Overriding, Interface Inheritance","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.3-overriding-interface-inheritance","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"ZgjOpCnDQF1WJdDIbR48","title":"9.4 Implementation Inheritance, default","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.4-implementation-inheritance-default","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"WB26wtMXmNgZXq8q8hLK","title":"9.5 Implementation vs. Interface Inheritance","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.5-implementation-vs.-interface-inheritance","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"7fnu5bEpyvc9139J3m6w","title":"9.6 Abstract Data Types","pathname":"/cs61b-textbook-fall-2025/9.-inheritance-i-interface-and-implementation-inheritance/9.6-abstract-data-types","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"9. Inheritance I: Interface and Implementation Inheritance"}]},{"id":"zNqLpBZDVFUD3oKKaqJY","title":"10. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions","pathname":"/cs61b-textbook-fall-2025/10.-inheritance-ii-extends-casting-higher-order-functions","siteSpaceId":"sitesp_puafv","description":"By Josh Hug"},{"id":"pHXNtp40y8S9dL5Xb6fI","title":"10.1 Polymorphism vs. Function Passing","pathname":"/cs61b-textbook-fall-2025/10.-inheritance-ii-extends-casting-higher-order-functions/10.1-subtype-polymorphism-vs.-function-passing","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"10. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"wO9jzkKhpJm0iXJUX1Fq","title":"10.2 Comparables and Comparators","pathname":"/cs61b-textbook-fall-2025/10.-inheritance-ii-extends-casting-higher-order-functions/10.2-encapsulation","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"10. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"qR4iST2s80PNiZK73u3i","title":"10.3 Writing a Max Function","pathname":"/cs61b-textbook-fall-2025/10.-inheritance-ii-extends-casting-higher-order-functions/10.3-casting","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"10. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"QSetSKRj4vroLZvFPqpH","title":"10.4 Summary","pathname":"/cs61b-textbook-fall-2025/10.-inheritance-ii-extends-casting-higher-order-functions/10.4-higher-order-functions-in-java","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"10. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions"}]},{"id":"o6CMGs5OPv7Bw5BV2eM5","title":"11. There is no chapter 11.","pathname":"/cs61b-textbook-fall-2025/11.-inheritance-iii-subtype-polymorphism-comparators-comparable","siteSpaceId":"sitesp_puafv","description":""},{"id":"2z50qQnwJGHfR0Iza0Q5","title":"12. Inheritance III: Iterators, Object Methods","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods","siteSpaceId":"sitesp_puafv","description":""},{"id":"Kaq3074Kwe7p4ZRmI1AK","title":"12.1 Lists and Sets in Java","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.1-lists-and-sets-in-java","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"MQiH5SMFtIlfjQvW3aU8","title":"12.2 Exceptions","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.2-exceptions","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"58RALtjeuoPPyPQc2ZmC","title":"12.3 Iteration","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.3-iteration","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"8Tooa2DEJ9tqFU1pz7u3","title":"12.4 Object Methods","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.4-object-methods","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"jHhTBwlAtSpLmxL3WhFF","title":"12.5 Chapter Summary","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.5-chapter-summary","siteSpaceId":"sitesp_puafv","description":"Summary of the main points in this chapter.","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"xBvRiIeLW9FOLfb6KpoG","title":"12.6 Exercises","pathname":"/cs61b-textbook-fall-2025/12.-inheritance-iv-iterators-object-methods/12.6-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"12. Inheritance III: Iterators, Object Methods"}]},{"id":"Aby59BGIPTJQujJnFbH9","title":"13. Asymptotics I","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i","siteSpaceId":"sitesp_puafv","description":"By: Thomas Lee"},{"id":"vc7xAHCVKk0PthjAE1qP","title":"13.1 An Introduction to Asymptotic Analysis","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.1-an-introduction-to-asymptotic-analysis","siteSpaceId":"sitesp_puafv","description":"We always have to start somewhere.","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"jMBJKYyX3FyhJysGJci6","title":"13.2 Runtime Characterization","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.2-runtime-characterization","siteSpaceId":"sitesp_puafv","description":"Techniques for Measuring Computational Cost.","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"hEA6BGn37igsj7zSxZ15","title":"13.3 Checkpoint: An Exercise","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.3-checkpoint-an-exercise","siteSpaceId":"sitesp_puafv","description":"Some much needed practice.","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"bIIwT8gTbDncAa0vStN1","title":"13.4 Asymptotic Behavior","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.4-asymptotic-behavior","siteSpaceId":"sitesp_puafv","description":"Be on your best behavior!","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"uZfEZJaXSFXukydxyPDP","title":"13.5 Simplified Analysis Process","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.5-simplified-analysis-process","siteSpaceId":"sitesp_puafv","description":"It's not that simple.","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"86nVaUEFWPBZettQ74zX","title":"13.6 Summary","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.6-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"V8TBLsiZ0p5Q5ecrpsIZ","title":"13.7 Exercises","pathname":"/cs61b-textbook-fall-2025/13.-asymptotics-i/13.7-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"13. Asymptotics I"}]},{"id":"FpZ40ZNG3wqW7m5k0Yyq","title":"14. Disjoint Sets","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets","siteSpaceId":"sitesp_puafv","description":"By Dhruti Pandya and Mihir Mirchandani"},{"id":"OWaQH6Bk27wxnjAd22Bp","title":"14.1 Introduction","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.1-introduction","siteSpaceId":"sitesp_puafv","description":"🚨 New Data Structure Alert 🚨: Disjoint Sets","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"c4kZDi3x7ufDsj2hT45q","title":"14.2 Quick Find","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.2-quick-find","siteSpaceId":"sitesp_puafv","description":"Keeping track of set membership...","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"jx3G4LrvWVJtqoz6nIpO","title":"14.3 Quick Union","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.3-quick-union","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"eKAiETjxCKSz0gci0MbN","title":"14.4 Weighted Quick Union (WQU)","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.4-weighted-quick-union-wqu","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"yoZcDBl2j0dltlmebqEI","title":"14.5 Weighted Quick Union with Path Compression","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.5-weighted-quick-union-with-path-compression","siteSpaceId":"sitesp_puafv","description":"Weighted Quick Union is pretty good, but we can do even better!","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"VRL2BIga2VBvD4v2zxYR","title":"14.6 Exercises","pathname":"/cs61b-textbook-fall-2025/14.-disjoint-sets/14.6-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"14. Disjoint Sets"}]},{"id":"zHzOhF20GNDikvcRPN0F","title":"15. Asymptotics II","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii","siteSpaceId":"sitesp_puafv","description":"There's no magic shortcut."},{"id":"q6SOt3gp20umfqNKtTwl","title":"15.1 Big Theta","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.1-big-theta","siteSpaceId":"sitesp_puafv","description":"Not to be confused with Big-O.","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"PWysd6RzP5TE0p37i6T5","title":"15.2 Big O","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.2-big-o","siteSpaceId":"sitesp_puafv","description":"Not to be confused with Big-Theta.","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"356NTNcjrkfMlBiEFKnh","title":"15.3 For Loops","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.3-for-loops","siteSpaceId":"sitesp_puafv","description":"Count, count, count...","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"1gs3vWQ8W6VUimmNcGi4","title":"15.4 For Loops Print Party","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.4-for-loops-print-party","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"2WgXcKbnMwMSZYyzolFM","title":"15.5 Summary","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.5-summary","siteSpaceId":"sitesp_puafv","description":"Wrapping up our asymptotics adventures.","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"NPTNbYymc9Jx3zgAQCab","title":"15.6 Exercises","pathname":"/cs61b-textbook-fall-2025/15.-asymptotics-ii/15.6-exercises","siteSpaceId":"sitesp_puafv","description":"Doing more practices is the best way to gain intuition when it comes to asymptotics!","breadcrumbs":[{"label":"15. Asymptotics II"}]},{"id":"dkbkcQqages4dkFMw3zu","title":"16. ADTs and BSTs","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts","siteSpaceId":"sitesp_puafv","description":""},{"id":"GEyb12YZozW5dqw0dp4M","title":"16.1 Binary Search Trees","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.1-binary-search-trees","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"EGgbw4QREk12MKZwCjuf","title":"16.2 BST Definitions","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.2-bst-definitions","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"DQhXIQZj21IOvorXjCKQ","title":"16.3 BST Operations","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.3-bst-operations","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"mmYHRJuvZk1i2bFkX8Lp","title":"16.4 BSTs as Sets and Maps","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.4-bsts-as-sets-and-maps","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"LkIK4Ed8XhaDPm2tiJQ8","title":"16.5 Summary","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.5-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"2IfkNvRbdRwtC1wVgdOi","title":"16.6 Exercises","pathname":"/cs61b-textbook-fall-2025/16.-adts-and-bsts/16.6-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"16. ADTs and BSTs"}]},{"id":"DJjK9LfAB5VxMxvwanOf","title":"17. Asymptotics III","pathname":"/cs61b-textbook-fall-2025/17.-asymptotics-iii","siteSpaceId":"sitesp_puafv","description":""},{"id":"DJnpbebThwFOe6YgXNhT","title":"17.1 Recursion","pathname":"/cs61b-textbook-fall-2025/17.-asymptotics-iii/17.1-recursion","siteSpaceId":"sitesp_puafv","description":"Here we go again...","breadcrumbs":[{"label":"17. Asymptotics III"}]},{"id":"zwaR5NFPcDg0SnuRXVMY","title":"17.2 Binary Search","pathname":"/cs61b-textbook-fall-2025/17.-asymptotics-iii/17.2-binary-search","siteSpaceId":"sitesp_puafv","description":"hi-lo!","breadcrumbs":[{"label":"17. Asymptotics III"}]},{"id":"TGvO7R6O1aqaSSTBQd96","title":"17.3 Mergesort","pathname":"/cs61b-textbook-fall-2025/17.-asymptotics-iii/17.3-mergesort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"17. Asymptotics III"}]},{"id":"tXOBNRUWTA04VVeFhaSP","title":"17.4 B-trees Big O","pathname":"/cs61b-textbook-fall-2025/17.-asymptotics-iii/17.4-b-trees-big-o","siteSpaceId":"sitesp_puafv","description":"A short digression on asymptotics","breadcrumbs":[{"label":"17. Asymptotics III"}]},{"id":"1NC0GPgx9ZaKL5XK2biV","title":"18. B-Trees","pathname":"/cs61b-textbook-fall-2025/18.-b-trees","siteSpaceId":"sitesp_puafv","description":""},{"id":"wqJ6rso7yVAhDT36M7dH","title":"18.1 BST Performance","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.1-bst-performance","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"Yq8g8sNqAmDlWcPACLnL","title":"18.2 Big O vs. Worst Case","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.2-big-o-vs.-worst-case","siteSpaceId":"sitesp_puafv","description":"A short digression on asymptotics","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"7dSfDNFtM1fpdZo6OJtA","title":"18.3 B-Tree Operations","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.3-b-tree-operations","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"YTjNvaJ5S4k7LINcV90H","title":"18.4 B-Tree Invariants","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.4-b-tree-invariants","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"qOBnkyku4C03VIkgY4P0","title":"18.5 B-Tree Performance","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.5-b-tree-performance","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"79NrXRqVy0bYOhSiW700","title":"18.6 Summary","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.6-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"rSe0xpbyJeZPg3PDwlBV","title":"18.7 Exercises","pathname":"/cs61b-textbook-fall-2025/18.-b-trees/18.7-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"18. B-Trees"}]},{"id":"El9kmciApiNf9PMDU2t7","title":"19. Red Black Trees","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees","siteSpaceId":"sitesp_puafv","description":"Time for some colors."},{"id":"1tkYIjMWx5dOpZMmLByQ","title":"19.1 Rotating Trees","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.1-rotating-trees","siteSpaceId":"sitesp_puafv","description":"Just like Ferris Wheels.","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"rRkWCfaDIunqA7fhB6sb","title":"19.2 Creating LLRB Trees","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.2-creating-llrb-trees","siteSpaceId":"sitesp_puafv","description":"Software Engineers? More like Tree Engineers","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"8ipZWw5KgnQior78WUzl","title":"19.3 Inserting LLRB Trees","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.3-inserting-llrb-trees","siteSpaceId":"sitesp_puafv","description":"Some Tree Maintenance.","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"3goixjEuCegoSI6bZF1V","title":"19.4 Runtime Analysis","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.4-runtime-analysis","siteSpaceId":"sitesp_puafv","description":"Short and Sweet.","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"wC1bTDVBtZ6hBNJ0NePT","title":"19.5 Summary","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.5-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"f3iVYNLv0RV3XmzBeqw5","title":"19.6 Exercises","pathname":"/cs61b-textbook-fall-2025/19.-red-black-trees/19.6-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"19. Red Black Trees"}]},{"id":"WZfYm7XdsG3ybOBUdyyX","title":"20. Hashing I","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i","siteSpaceId":"sitesp_puafv","description":"By William Lee and Angel Aldaco"},{"id":"zK0mbHiDGl1rKH1ZjTBO","title":"20.1 Introduction to Hashing: Data Indexed Arrays","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.1-introduction-to-hashing-data-indexed-arrays","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"0cXiQIzWcfJfHIw7C7gD","title":"20.1.1 A first attempt: DataIndexedIntegerSet","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.1-introduction-to-hashing-data-indexed-arrays/20.1.1-a-first-attempt-dataindexedintegerset","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"},{"label":"20.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"KVW58AG9A1175R7nnNdX","title":"20.1.2 A second attempt: DataIndexedWordSet","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.1-introduction-to-hashing-data-indexed-arrays/20.1.2-a-second-attempt-dataindexedwordset","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"},{"label":"20.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"c5GJthlBHb9xLVSASiGd","title":"20.1.3 A third attempt: DataIndexedStringSet","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.1-introduction-to-hashing-data-indexed-arrays/20.1.3-a-third-attempt-dataindexedstringset","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"},{"label":"20.1 Introduction to Hashing: Data Indexed Arrays"}]},{"id":"4J1KiB08c0kRFivFRCsf","title":"20.2 Hash Code","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.2-hash-code","siteSpaceId":"sitesp_puafv","description":"The core mechanism of hashing!","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"14FikeNxaN9rd3gvFfYD","title":"20.3 \"Valid\" & \"Good\" Hashcodes","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.3-valid-and-good-hashcodes","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"Ieb1pZKebaoRKnvygYVK","title":"20.4 Handling Collisions: Linear Probing and External Chaining","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.4-handling-collisions-linear-probing-and-external-chaining","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"BuAlGELL9cjwSMp6joz8","title":"20.5 Resizing & Hash Table Performance","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.5-resizing-and-hash-table-performance","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"w7ZRl3auQAPMokLgIpWu","title":"20.6 Summary","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.6-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"ci82aDCCl5kDDLsogRtJ","title":"20.7 Exercises","pathname":"/cs61b-textbook-fall-2025/20.-hashing-i/20.7-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"20. Hashing I"}]},{"id":"YiWvvCWUi2OKdPBA4i75","title":"21. Hashing II","pathname":"/cs61b-textbook-fall-2025/21.-hashing-ii","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani and William Lee"},{"id":"5r25NjtJu98aTVUXjklZ","title":"21.1 Hash Table Recap, Default Hash Function","pathname":"/cs61b-textbook-fall-2025/21.-hashing-ii/21.1-hash-table-recap-default-hash-function","siteSpaceId":"sitesp_puafv","description":"\"The whole point is that we have a bunch of lists that are all short.\" - Professor Hug.","breadcrumbs":[{"label":"21. Hashing II"}]},{"id":"mdnEQZbtydqG2RvUIJox","title":"21.2 Distribution By Other Hash Functions","pathname":"/cs61b-textbook-fall-2025/21.-hashing-ii/21.2-distribution-by-other-hash-functions","siteSpaceId":"sitesp_puafv","description":"HashMaps/Tables have fast lookup times, but behind that \"superpower\" is a hash function.","breadcrumbs":[{"label":"21. Hashing II"}]},{"id":"6pwEl5iw5asxRD2yeZKl","title":"21.3 Contains & Duplicate Items","pathname":"/cs61b-textbook-fall-2025/21.-hashing-ii/21.3-contains-and-duplicate-items","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"21. Hashing II"}]},{"id":"X2XJj4Y8CfgZqTMMynQW","title":"21.4 Mutable vs. Immutable Types","pathname":"/cs61b-textbook-fall-2025/21.-hashing-ii/21.4-mutable-vs.-immutable-types","siteSpaceId":"sitesp_puafv","breadcrumbs":[{"label":"21. Hashing II"}]},{"id":"BD1Tx9gT2x4kI5YBJ998","title":"22. Heaps and Priority Queues","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues","siteSpaceId":"sitesp_puafv","description":"By Dhruti Pandya and Angel Aldaco"},{"id":"Pj4UY0Mq91bu9TA15YZ5","title":"22.1 Priority Queues","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues/22.1-priority-queues","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"22. Heaps and Priority Queues"}]},{"id":"3DkTwprW6shhDFsgFPds","title":"22.2 Heaps","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues/22.2-heaps","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"22. Heaps and Priority Queues"}]},{"id":"j9l0XSLVcA7ZpZR9BemY","title":"22.3 PQ Implementation","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues/22.3-pq-implementation","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"22. Heaps and Priority Queues"}]},{"id":"Y8EJPTDJFLYt3MZnpQJu","title":"22.4 Summary","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues/22.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"22. Heaps and Priority Queues"}]},{"id":"lef6NVmEPTyyMrQZjoJQ","title":"22.5 Exercises","pathname":"/cs61b-textbook-fall-2025/22.-heaps-and-priority-queues/22.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"22. Heaps and Priority Queues"}]},{"id":"ipbDnmsfLq54xgHqsQrq","title":"23. Tree Traversals and Graphs","pathname":"/cs61b-textbook-fall-2025/23.-tree-traversals-and-graphs","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani and Dhruti Pandya"},{"id":"LEOmZvdsxMxeRnVlKv6M","title":"23.1 Tree Recap","pathname":"/cs61b-textbook-fall-2025/23.-tree-traversals-and-graphs/23.1-tree-recap","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"23. Tree Traversals and Graphs"}]},{"id":"dnmuDR0qFAvHlURCRONj","title":"23.2 Tree Traversals","pathname":"/cs61b-textbook-fall-2025/23.-tree-traversals-and-graphs/23.2-tree-traversals","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"23. Tree Traversals and Graphs"}]},{"id":"NPpXdCCjHDGUvFKtiMkC","title":"23.3 Graphs","pathname":"/cs61b-textbook-fall-2025/23.-tree-traversals-and-graphs/23.3-graphs","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"23. Tree Traversals and Graphs"}]},{"id":"fO4etQBNc39QyzmN5Aak","title":"23.4 Graph Problems","pathname":"/cs61b-textbook-fall-2025/23.-tree-traversals-and-graphs/23.4-graph-problems","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"23. Tree Traversals and Graphs"}]},{"id":"xRucMEygLSKWhSg8AYZp","title":"24. Graph Traversals and Implementations","pathname":"/cs61b-textbook-fall-2025/24.-graph-traversals-and-implementations","siteSpaceId":"sitesp_puafv","description":"By William Lee and Mihir Mirchandani"},{"id":"QVMkWddxfdsiPgVFT73I","title":"24.1 BFS & DFS","pathname":"/cs61b-textbook-fall-2025/24.-graph-traversals-and-implementations/24.1-bfs-and-dfs","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"24. Graph Traversals and Implementations"}]},{"id":"2vncxBCJJ4SnCOI1HJgt","title":"24.2 Representing Graphs","pathname":"/cs61b-textbook-fall-2025/24.-graph-traversals-and-implementations/24.2-representing-graphs","siteSpaceId":"sitesp_puafv","description":"How do we create a graph in Java?","breadcrumbs":[{"label":"24. Graph Traversals and Implementations"}]},{"id":"wJfM6eSamdgU5PnjIAz5","title":"24.3 Summary","pathname":"/cs61b-textbook-fall-2025/24.-graph-traversals-and-implementations/24.3-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"24. Graph Traversals and Implementations"}]},{"id":"gvqwzEG6aY7e9Av8aSXl","title":"24.4 Exercises","pathname":"/cs61b-textbook-fall-2025/24.-graph-traversals-and-implementations/24.4-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"24. Graph Traversals and Implementations"}]},{"id":"P3lgMNkeZoaXertXQJh4","title":"25. Shortest Paths","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths","siteSpaceId":"sitesp_puafv","description":"By: Mihir Mirchandani and Teresa Luo"},{"id":"UvfiF7JAlEY3nRjqPbkG","title":"25.1 Introduction","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths/25.1-introduction","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"25. Shortest Paths"}]},{"id":"w8HcSbEPDolFQTYsabeG","title":"25.2 Dijkstra's Algorithm","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths/25.2-dijkstras-algorithm","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"25. Shortest Paths"}]},{"id":"bomL4GQIRPjuiKde17gt","title":"25.3 A* Algorithm","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths/25.3-a-algorithm","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"25. Shortest Paths"}]},{"id":"odGwOSBb7XOml6l73T5X","title":"25.4 Summary","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths/25.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"25. Shortest Paths"}]},{"id":"GBJkKE3cWbIYRewV4tXu","title":"25.5 Exercises","pathname":"/cs61b-textbook-fall-2025/25.-shortest-paths/25.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"25. Shortest Paths"}]},{"id":"pof7TakN56HOpRJ9dSNg","title":"26. Minimum Spanning Trees","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees","siteSpaceId":"sitesp_puafv","description":"By Teresa Luo and Mihir Mirchandani"},{"id":"145GsGlCLCdmQJzGezDs","title":"26.1 MSTs and Cut Property","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees/26.1-msts-and-cut-property","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"26. Minimum Spanning Trees"}]},{"id":"HYmgmwy2yNOKMgNc34Rb","title":"26.2 Prim's Algorithm","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees/26.2-prims-algorithm","siteSpaceId":"sitesp_puafv","description":"Finding MST.","breadcrumbs":[{"label":"26. Minimum Spanning Trees"}]},{"id":"kTklNQTZDTJo0xngq7lh","title":"26.3 Kruskal's Algorithm","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees/26.3-kruskals-algorithm","siteSpaceId":"sitesp_puafv","description":"Finding MST.","breadcrumbs":[{"label":"26. Minimum Spanning Trees"}]},{"id":"FzioH4NiH7Kyb6LFaWA0","title":"26.4 Chapter Summary","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees/26.4-chapter-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"26. Minimum Spanning Trees"}]},{"id":"LX8DPto6Ndzf1u5u4ytq","title":"26.5 MST Exercises","pathname":"/cs61b-textbook-fall-2025/26.-minimum-spanning-trees/26.5-mst-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"26. Minimum Spanning Trees"}]},{"id":"A0K1WRVXeVYUKQB6BYVw","title":"27. Prefix Operations and Tries","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries","siteSpaceId":"sitesp_puafv","description":"By: Thomas Lee"},{"id":"UUGWRyEhwqZyQqV1XggO","title":"27.1 Introduction to Tries","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries/27.1-introduction-to-tries","siteSpaceId":"sitesp_puafv","description":"Do or do not. There is no Trie.","breadcrumbs":[{"label":"27. Prefix Operations and Tries"}]},{"id":"rX2EJWIpVzp09JCzvAsf","title":"27.2 Trie Implementation","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries/27.2-trie-implementation","siteSpaceId":"sitesp_puafv","description":"Giving it the old college Trie.","breadcrumbs":[{"label":"27. Prefix Operations and Tries"}]},{"id":"GzBPTVvCeOxc2gT4TVTE","title":"27.3 Trie String Operations","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries/27.3-trie-string-operations","siteSpaceId":"sitesp_puafv","description":"Trie, Trie again.","breadcrumbs":[{"label":"27. Prefix Operations and Tries"}]},{"id":"yv6ZayXu4WS1qz1z21up","title":"27.4 Summary","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries/27.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"27. Prefix Operations and Tries"}]},{"id":"UUfU3QuwsWCYlZHfvIg9","title":"27.5 Exercises","pathname":"/cs61b-textbook-fall-2025/27.-prefix-operations-and-tries/27.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"27. Prefix Operations and Tries"}]},{"id":"YmS0wNB1zVoX83OrWmbc","title":"28. Software Engineering I","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i","siteSpaceId":"sitesp_puafv","description":"By Aniruth Narayanan"},{"id":"I7oYyqvQzPriKSdSvKT8","title":"28.1 Introduction to Software Engineering","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i/28.1-introduction-to-software-engineering","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"28. Software Engineering I"}]},{"id":"e4oDzpobF36yt95wjiQM","title":"28.2 Complexity","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i/28.2-complexity","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"28. Software Engineering I"}]},{"id":"HIfkpZ26QHopx0KXVTCe","title":"28.3 Strategic vs Tactical Programming","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i/28.3-strategic-vs-tactical-programming","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"28. Software Engineering I"}]},{"id":"CSQPCecJIgLFviW4IEaV","title":"28.4 Real World Examples","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i/28.4-real-world-examples","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"28. Software Engineering I"}]},{"id":"tEP4f6uf2ItscwIg72At","title":"28.5 Summary, Exercises","pathname":"/cs61b-textbook-fall-2025/28.-software-engineering-i/28.5-summary-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"28. Software Engineering I"}]},{"id":"QTskBH4LFeODqcuJPeeq","title":"29. Reductions and Decomposition","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani"},{"id":"Rhmhe5Mn9T2K2BoNj1Pz","title":"29.1 Topological Sorts and DAGs","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition/29.1-topological-sorts-and-dags","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"29. Reductions and Decomposition"}]},{"id":"T2B6EbmQQCZhDwg3Ocxq","title":"29.2 Shortest Paths on DAGs","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition/29.2-shortest-paths-on-dags","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"29. Reductions and Decomposition"}]},{"id":"OzIOBiMEJFI8voMdBVzf","title":"29.3 Longest Path","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition/29.3-longest-path","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"29. Reductions and Decomposition"}]},{"id":"iLPGabaPjuGT1VjQrEsj","title":"29.4 Reductions and Decomposition","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition/29.4-reductions-and-decomposition","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"29. Reductions and Decomposition"}]},{"id":"w7B8TUX1pSq0Wdewg7UR","title":"29.5 Exercises","pathname":"/cs61b-textbook-fall-2025/29.-reductions-and-decomposition/29.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"29. Reductions and Decomposition"}]},{"id":"SFuFzumkp6pdtkxdbm4N","title":"30. Basic Sorts","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts","siteSpaceId":"sitesp_puafv","description":""},{"id":"7j3g5h93tSPjW20qOLAX","title":"30.1 The Sorting Problem","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.1-the-sorting-problem","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"e9aDjJePgUHRSzOdbZ33","title":"30.2 Selection Sort & Heapsort","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.2-selection-sort-and-heapsort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"p0uLyMv1A43mkO1u0kjz","title":"30.3 Mergesort","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.3-mergesort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"ac2nOHhXOaUh82Ygjsk7","title":"30.4 Insertion Sort","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.4-insertion-sort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"OueNTAhSE9UqWFXjLbNt","title":"30.5 Summary","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.5-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"SPsdNpkWRAnt1wUnMMdi","title":"30.6 Exercises","pathname":"/cs61b-textbook-fall-2025/30.-basic-sorts/30.6-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"30. Basic Sorts"}]},{"id":"FtchjmQG0gdDe5Azn470","title":"31. Quicksort","pathname":"/cs61b-textbook-fall-2025/31.-quicksort","siteSpaceId":"sitesp_puafv","description":""},{"id":"n8Vti8LSYbh7I60WOTp3","title":"31.1 Partitioning","pathname":"/cs61b-textbook-fall-2025/31.-quicksort/31.1-partitioning","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"31. Quicksort"}]},{"id":"lKtei8E16CLVXV998KIs","title":"31.2 Quicksort Algorithm","pathname":"/cs61b-textbook-fall-2025/31.-quicksort/31.2-quicksort-algorithm","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"31. Quicksort"}]},{"id":"4mN5O8w7CGWYAfN1E01z","title":"31.3 Quicksort Performance Caveats","pathname":"/cs61b-textbook-fall-2025/31.-quicksort/31.3-quicksort-performance-caveats","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"31. Quicksort"}]},{"id":"6GB4TtM2cuSq8X2GPSzd","title":"31.4 Summary","pathname":"/cs61b-textbook-fall-2025/31.-quicksort/31.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"31. Quicksort"}]},{"id":"upVyslbR33YLI4B2WAQL","title":"31.5 Exercises","pathname":"/cs61b-textbook-fall-2025/31.-quicksort/31.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"31. Quicksort"}]},{"id":"5kfD40kOBLcz2Kw6gcbg","title":"32. Software Engineering II","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii","siteSpaceId":"sitesp_puafv","description":"By Thomas Lee and Mihir Mirchandani"},{"id":"qROCJrnvGrta4a5gLNEM","title":"32.1 Complexity II","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii/32.1-complexity-ii","siteSpaceId":"sitesp_puafv","description":"Complexity comshmexity.","breadcrumbs":[{"label":"32. Software Engineering II"}]},{"id":"1XKv7AsL6vTYpLWFyizP","title":"32.2 Sources of Complexity","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii/32.2-sources-of-complexity","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"32. Software Engineering II"}]},{"id":"MDIr4j9ZV7Ajx3iCS7Yg","title":"32.3 Modular Design","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii/32.3-modular-design","siteSpaceId":"sitesp_puafv","description":"A tool for managing complexity.","breadcrumbs":[{"label":"32. Software Engineering II"}]},{"id":"UxNzhxaqDnhq3eBQVyMO","title":"32.4 Teamwork","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii/32.4-teamwork","siteSpaceId":"sitesp_puafv","description":"\"There is no I in TEAM\"","breadcrumbs":[{"label":"32. Software Engineering II"}]},{"id":"m69xImR4JtIKfKTxxwPi","title":"32.5 Exerises","pathname":"/cs61b-textbook-fall-2025/32.-software-engineering-ii/32.5-exerises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"32. Software Engineering II"}]},{"id":"sPUEUXjvlx7JjL7sqs6W","title":"33. More Quick Sort, Sorting Summary","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary","siteSpaceId":"sitesp_puafv","description":"By Teresa Luo and Nathalys Pham"},{"id":"gnGmEicLRtKUpn00z8BA","title":"33.1 Quicksort Flavors vs. MergeSort","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary/33.1-quicksort-flavors-vs.-mergesort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"33. More Quick Sort, Sorting Summary"}]},{"id":"6rTNu2LYY82koPenDjNG","title":"33.2 Quick Select","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary/33.2-quick-select","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"33. More Quick Sort, Sorting Summary"}]},{"id":"5Y5dYOZnNBhQLNzG3xHr","title":"33.3 Stability, Adaptiveness, and Optimization","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary/33.3-stability-adaptiveness-and-optimization","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"33. More Quick Sort, Sorting Summary"}]},{"id":"dukVspVm8pDVRR5u2lzi","title":"33.4 Summary","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary/33.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"33. More Quick Sort, Sorting Summary"}]},{"id":"r7W9x0RuxMhyoSyCNBsa","title":"33.5 Exercises","pathname":"/cs61b-textbook-fall-2025/33.-more-quick-sort-sorting-summary/33.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"33. More Quick Sort, Sorting Summary"}]},{"id":"cVQ7zvStiT3JL0kDo6Z4","title":"34. Software Engineering III","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii","siteSpaceId":"sitesp_puafv","description":"By William Lee and Teresa Luo"},{"id":"WjYGsRQIMwR3VfeKH1FJ","title":"34.1 Candy Crush, SnapChat, and Friends","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii/34.1-candy-crush-snapchat-and-friends","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"34. Software Engineering III"}]},{"id":"kLeKkHRnhLwJgTchZngE","title":"34.2 The Ledger of Harms","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii/34.2-the-ledger-of-harms","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"34. Software Engineering III"}]},{"id":"kt9C8rx8whTfv3nHVZNa","title":"34.3 Your Life","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii/34.3-your-life","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"34. Software Engineering III"}]},{"id":"nxLrfldVGx9Ars96bb8T","title":"34.4 Summary","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii/34.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"34. Software Engineering III"}]},{"id":"qIikTWNbXpqp08P7TQk3","title":"34.5 Exercises","pathname":"/cs61b-textbook-fall-2025/34.-software-engineering-iii/34.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"34. Software Engineering III"}]},{"id":"SYU1OBffAaKUwKIZ71Um","title":"35. Sorting and Algorithmic Bounds","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds","siteSpaceId":"sitesp_puafv","description":"By William Lee and Angel Aldaco"},{"id":"H35gfJpnh10zWRUnMjDw","title":"35.1 Sorting Summary","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds/35.1-sorting-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"35. Sorting and Algorithmic Bounds"}]},{"id":"SM6uwA5gfha9QRwaFUhP","title":"35.2 Math Problems Out of Nowhere","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds/35.2-math-problems-out-of-nowhere","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"35. Sorting and Algorithmic Bounds"}]},{"id":"xpJO3QQ9nFI07E6QIhaj","title":"35.3 Theoretical Bounds on Sorting","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds/35.3-theoretical-bounds-on-sorting","siteSpaceId":"sitesp_puafv","description":"What is the best time we can get for sorting?","breadcrumbs":[{"label":"35. Sorting and Algorithmic Bounds"}]},{"id":"kWr6Qf3yzKTcDANsmKTk","title":"35.4 Summary","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds/35.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"35. Sorting and Algorithmic Bounds"}]},{"id":"0BdlEaWCZ7W6ptwjIrHc","title":"35.5 Exercises","pathname":"/cs61b-textbook-fall-2025/35.-sorting-and-algorithmic-bounds/35.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"35. Sorting and Algorithmic Bounds"}]},{"id":"3STZ7rHaWBxK9eDhD1TI","title":"36. Radix Sorts","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani"},{"id":"BaZ6mG7a2tSB4fsF2XFL","title":"36.1 Counting Sort","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts/36.1-counting-sort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"36. Radix Sorts"}]},{"id":"FdeekF2dMUdgPN0HBqC6","title":"36.2 LSD Radix Sort","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts/36.2-lsd-radix-sort","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"36. Radix Sorts"}]},{"id":"dXkuEIEzyDJJEc9vycX2","title":"36.3 MSD Radix Sort","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts/36.3-msd-radix-sort","siteSpaceId":"sitesp_puafv","description":"Basic idea: Just like LSD, but sort from leftmost digit towards the right.","breadcrumbs":[{"label":"36. Radix Sorts"}]},{"id":"kN8EmMYVo1WlStv3To8N","title":"36.4 Summary","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts/36.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"36. Radix Sorts"}]},{"id":"Yy7MLgjtzXokLvUmTWRf","title":"36.5 Exercises","pathname":"/cs61b-textbook-fall-2025/36.-radix-sorts/36.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"36. Radix Sorts"}]},{"id":"LA5vl94VSDT1MJJ8lDm3","title":"37. Sorting and Data Structures Conclusion","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani and William Lee"},{"id":"4sLmhONe6OzdueItXSoZ","title":"37.1 Radix vs. Comparison Sorting","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion/37.1-radix-vs.-comparison-sorting","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"37. Sorting and Data Structures Conclusion"}]},{"id":"tQS873XMOwtTvk2iOF88","title":"37.2 The Just-In-Time Compiler","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion/37.2-the-just-in-time-compiler","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"37. Sorting and Data Structures Conclusion"}]},{"id":"jFJpFuQsNBZraboYeMf7","title":"37.3 Radix Sorting Integers","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion/37.3-radix-sorting-integers","siteSpaceId":"sitesp_puafv","description":"ft. Obama","breadcrumbs":[{"label":"37. Sorting and Data Structures Conclusion"}]},{"id":"wx5zVZqE5CdbKD0PNFSk","title":"37.4 Summary","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion/37.4-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"37. Sorting and Data Structures Conclusion"}]},{"id":"tdV9q4lrM7V3KeoPUekj","title":"37.5 Exercises","pathname":"/cs61b-textbook-fall-2025/37.-sorting-and-data-structures-conclusion/37.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"37. Sorting and Data Structures Conclusion"}]},{"id":"69JJDiYWv0cbdT9E7rEK","title":"38. Software Engineering IV","pathname":"/cs61b-textbook-fall-2025/38.-software-engineering-iv","siteSpaceId":"sitesp_puafv","description":"By Mihir Mirchandani"},{"id":"bXis5D01OLvH2BTFDBSs","title":"38.1 The end is near","pathname":"/cs61b-textbook-fall-2025/38.-software-engineering-iv/38.1-the-end-is-near","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"38. Software Engineering IV"}]},{"id":"WY2vqIF5njnOmCOYGV0i","title":"39. Compression and Complexity","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity","siteSpaceId":"sitesp_puafv","description":"By Dhruti Pandya and Stella Kaval"},{"id":"xcxlnbpOo1CLCgSPPKdQ","title":"39.1 Introduction to Compression","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.1-introduction-to-compression","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"ENpiilC1q9DOkyCDDgZd","title":"39.2 Prefix-free Codes","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.2-prefix-free-codes","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"UgI2O3l2uVMlcETtSYU9","title":"39.3 Shannon-Fano Codes","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.3-shannon-fano-codes","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"sPRPIInIJsv4FpUma25C","title":"39.4 Huffman Coding Conceptuals","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.4-huffman-coding-conceptuals","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"yhj2cHSRvRJhTHXxqOmH","title":"39.5 Compression Theory","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.5-compression-theory","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"n5XqZsIxW7LrcvpUVpJO","title":"39.6 LZW Compression","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.6-lzw-compression","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"WfSSDi7vKaEq3wIBtPw8","title":"39.7 Summary","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.7-summary","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"QMf2JxH95j9p8zCWEmcB","title":"39.8 Exercises","pathname":"/cs61b-textbook-fall-2025/39.-compression-and-complexity/39.8-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"39. Compression and Complexity"}]},{"id":"qGj0BQNE2T5yB1TX7CyX","title":"40. Compression, Complexity, P = NP","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np","siteSpaceId":"sitesp_puafv","description":""},{"id":"E3A5bEYCPmzOxq1FEv05","title":"40.1 Models of Compression","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np/40.1-models-of-compression","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"40. Compression, Complexity, P = NP"}]},{"id":"smUfcMEZSmPbgZvqzx3A","title":"40.2 Optimal Compression, Kolmogorov Complexity","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np/40.2-optimal-compression-kolmogorov-complexity","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"40. Compression, Complexity, P = NP"}]},{"id":"9vqlpx9kuf9VH47PO8WX","title":"40.3 Space/Time-Bounded Compression","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np/40.3-space-time-bounded-compression","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"40. Compression, Complexity, P = NP"}]},{"id":"JfJ03MULhYjOJQgavCE6","title":"40.4 P = NP","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np/40.4-p-np","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"40. Compression, Complexity, P = NP"}]},{"id":"HiZlukEZ6oZT5TAvLP83","title":"40.5 Exercises","pathname":"/cs61b-textbook-fall-2025/40.-compression-complexity-p-np/40.5-exercises","siteSpaceId":"sitesp_puafv","description":"","breadcrumbs":[{"label":"40. Compression, Complexity, P = NP"}]}]}