Compare commits
2 Commits
2f175fadea
...
6bae66461d
| Author | SHA1 | Date | |
|---|---|---|---|
| 6bae66461d | |||
| 561d6cda41 |
@@ -10,8 +10,9 @@ Table of Contents:
|
||||
* [Dictionaries and Maps and Hash Tables](#dict)
|
||||
* [Sets, Skip Lists](#sets)
|
||||
* [Search Trees](#searchtrees)
|
||||
* [Graphs](#graphs)
|
||||
* [Advanced Data Structures (Skiena)](#adv)
|
||||
* [Graphs](#graphs)
|
||||
* [Study Guides](#studyguides)
|
||||
* [Data Structures and Libraries](#lib)
|
||||
* Guava
|
||||
* Apache Commons
|
||||
@@ -260,6 +261,8 @@ Table of Contents:
|
||||
- 06/23
|
||||
- Books:
|
||||
- Goodrich Python/Java books covering priority queue theory/concepts
|
||||
- Online videos:
|
||||
- [Heaps and heap sort (MIT 6.006)](https://www.youtube.com/watch?v=B7hVxCmfPtM)
|
||||
- Wiki notes:
|
||||
- Binary search trees
|
||||
- Heap sort
|
||||
@@ -278,26 +281,26 @@ Table of Contents:
|
||||
[ ] Dictionaries/Maps/Hash Tables
|
||||
- 06/02 - 06/03 - Skiena advanced data structures
|
||||
- 06/19 - 06/21 - Goodrich book
|
||||
- 06/23 - 06/25 - Videos
|
||||
- Books:
|
||||
- Skiena Chapter 3
|
||||
- Goodrich Chapter 10 - FIRST HALF
|
||||
- Online Videos:
|
||||
- MIT 6.006 Intro to Algorithms: Erik Demaine
|
||||
- [Lecture 8: Hashing with chaining](https://www.youtube.com/watch?v=0M_kIqhwbFo)
|
||||
- [Lecture 9: Table doubling](https://www.youtube.com/watch?v=BRO7mVIFt08)
|
||||
- [Hashing with chaining (MIT 6.006)](https://www.youtube.com/watch?v=0M_kIqhwbFo)
|
||||
- [Table doubling (MIT 6.006)](https://www.youtube.com/watch?v=BRO7mVIFt08)
|
||||
- [Open addressing, crypto hashing (MIT 6.006)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
||||
- [Randomization: universal hashing, perfect hashing (MIT 6.046)](https://www.youtube.com/watch?v=z0lJ2k0sl1g)
|
||||
- Wiki notes:
|
||||
- End of chapter questions:
|
||||
- [https://charlesreid1.com/wiki/Hash_Functions](https://charlesreid1.com/wiki/Hash_Functions)
|
||||
- [https://charlesreid1.com/wiki/Maps](https://charlesreid1.com/wiki/Maps)
|
||||
- [https://charlesreid1.com/wiki/Maps_in_Java](https://charlesreid1.com/wiki/Maps_in_Java)
|
||||
- Git code:
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
<a name="hash"></a>
|
||||
## Hash Tables
|
||||
|
||||
[ ] Hash tables: (Detail topic?)
|
||||
|
||||
- [https://charlesreid1.com:3000/cs/java/src/master/hash](https://charlesreid1.com:3000/cs/java/src/master/hash)
|
||||
- Map interface: [https://charlesreid1.com:3000/cs/java/src/master/hash/Map.java](https://charlesreid1.com:3000/cs/java/src/master/hash/Map.java)
|
||||
- AbstractMap class: [https://charlesreid1.com:3000/cs/java/src/master/hash/AbstractMap.java](https://charlesreid1.com:3000/cs/java/src/master/hash/AbstractMap.java)
|
||||
- Unsorted array map: [https://charlesreid1.com:3000/cs/java/src/master/hash/UnsortedArrayMap.java](https://charlesreid1.com:3000/cs/java/src/master/hash/UnsortedArrayMap.java)
|
||||
- Exploring hash functions: [https://charlesreid1.com:3000/cs/java/src/master/hash/HashFunctions.java](https://charlesreid1.com:3000/cs/java/src/master/hash/HashFunctions.java)
|
||||
- Exploring hashCode() function: [https://charlesreid1.com:3000/cs/java/src/master/hash/ObjectHashCode.java](https://charlesreid1.com:3000/cs/java/src/master/hash/ObjectHashCode.java)
|
||||
|
||||
|
||||
---
|
||||
@@ -309,6 +312,21 @@ Table of Contents:
|
||||
|
||||
|
||||
[ ] Sets and Skip Lists
|
||||
- 06/26 - 06/30
|
||||
- Books:
|
||||
- Goodrich Chapter 10 - SECOND HALF
|
||||
- Online videos:
|
||||
- [Randomization: skip lists (MIT 6.046)](https://www.youtube.com/watch?v=2g9OSRKJuzM)
|
||||
- Other code:
|
||||
- phishman data structures code
|
||||
- Wiki notes:
|
||||
- [https://charlesreid1.com/wiki/Skip_Lists](https://charlesreid1.com/wiki/Skip_Lists)
|
||||
- [https://charlesreid1.com/wiki/Java/ConcurrentSkipList](https://charlesreid1.com/wiki/Java/ConcurrentSkipList)
|
||||
- [https://charlesreid1.com/wiki/SkipList](https://charlesreid1.com/wiki/SkipList)
|
||||
- TODO - need to finish the implementation notese at the last link
|
||||
- Git code:
|
||||
- SkipList class: [https://charlesreid1.com:3000/cs/java/src/master/hash/SkipList.java](https://charlesreid1.com:3000/cs/java/src/master/hash/SkipList.java)
|
||||
- TODO - need to implement a timing class for SkipList
|
||||
|
||||
|
||||
---
|
||||
@@ -317,17 +335,27 @@ Table of Contents:
|
||||
<a name="searchtrees"></a>
|
||||
### Search Trees
|
||||
|
||||
[ ] Trees: binary search trees
|
||||
[ ] Trees: search trees (binary, AVL, splay, 2-4, heap)
|
||||
- 07/01 - 07/03
|
||||
- Books:
|
||||
- Goodrich Chapter 11
|
||||
- Online Videos:
|
||||
- [Binary search trees (MIT 6.006)](https://www.youtube.com/watch?v=9Jry5-82I68)
|
||||
- [AVL trees (MIT 6.006)](https://www.youtube.com/watch?v=FNeL18KsWPc&index=6&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb)
|
||||
- [B-Trees insertion and sort](https://www.youtube.com/watch?v=k5J9M5_IMzg)
|
||||
- Wiki notes:
|
||||
- Binary search trees [https://charlesreid1.com/wiki/Binary_Search_Trees](https://charlesreid1.com/wiki/Binary_Search_Trees)
|
||||
- Binary search tree navigation [
|
||||
- Binary search tree insertion and deletion
|
||||
- OOP: Hooks, virtual method alternatives, positions vs nodes, key-value pairs
|
||||
- AVL search tree
|
||||
|
||||
[ ] Trees: balanced search trees
|
||||
|
||||
[ ] Trees: red black trees
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
<a name="graphs"></a>
|
||||
### Graphs
|
||||
|
||||
@@ -339,6 +367,36 @@ Table of Contents:
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
<a name="studyguides"></a>
|
||||
### Study Guides
|
||||
|
||||
[ ] Data structures study guides
|
||||
- Arrays study guide - finished 7/5
|
||||
- [https://charlesreid1.com/wiki/Arrays_Study_Guide](https://charlesreid1.com/wiki/Arrays_Study_Guide)
|
||||
- Lists study guide - finished 7/5
|
||||
- [https://charlesreid1.com/wiki/Lists_Study_Guide](https://charlesreid1.com/wiki/Lists_Study_Guide)
|
||||
- Stacks and queues study guide - finished 7/55
|
||||
- [https://charlesreid1.com/wiki/Stacks_Queues_Study_Guide](https://charlesreid1.com/wiki/Stacks_Queues_Study_Guide)
|
||||
- Priority queues/heaps study guide - finished 7/6
|
||||
- [https://charlesreid1.com/wiki/Priority_Queues_Study_Guide](https://charlesreid1.com/wiki/Priority_Queues_Study_Guide)
|
||||
- Hash tables study guide - finished 7/6
|
||||
- [https://charlesreid1.com/wiki/Hash_Tables_Study_Guide](https://charlesreid1.com/wiki/Hash_Tables_Study_Guide)
|
||||
- Trees study guide - finished 7/7
|
||||
- [https://charlesreid1.com/wiki/Trees_Study_Guide](https://charlesreid1.com/wiki/Trees_Study_Guide)
|
||||
- Maps and sets study guide - finished 7/9
|
||||
- [https://charlesreid1.com/wiki/Maps_and_Sets_Study_Guide](https://charlesreid1.com/wiki/Maps_and_Sets_Study_Guide)
|
||||
- Search trees study guide - finished 7/9
|
||||
- [https://charlesreid1.com/wiki/Search_Trees_Study_Guide](https://charlesreid1.com/wiki/Search_Trees_Study_Guide)
|
||||
|
||||
[ ] Data structures flashcards
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -355,7 +413,6 @@ Table of Contents:
|
||||
- [https://charlesreid1.com/wiki/Priority_Queues](https://charlesreid1.com/wiki/Priority_Queues)
|
||||
- End of chapter questions:
|
||||
- Skiena chapter 3 question solutions on wiki
|
||||
Git code:
|
||||
|
||||
(This ended up being quite a jump in a different direction.
|
||||
Much more practical focus on algorithms, only the most useful data structures,
|
||||
@@ -390,6 +447,7 @@ Some libraries that provide data structures in Java.
|
||||
|
||||
[X] Algorithm complexity and big-oh notation
|
||||
- 05/26, 05/27
|
||||
- Revisiting 7/15
|
||||
- Books:
|
||||
- Goodrich et al: Data Structures and Algorithms in Python
|
||||
- Skiena: Algorithm Design Manual
|
||||
@@ -435,21 +493,60 @@ Some libraries that provide data structures in Java.
|
||||
|
||||
[ ] Algorithms: Backtracking
|
||||
|
||||
|
||||
|
||||
<a name="search"></a>
|
||||
### Search
|
||||
|
||||
[ ] Sequential search
|
||||
|
||||
[ ] Binary search
|
||||
- 07/16
|
||||
- Books:
|
||||
- Skiena Chapter 4
|
||||
- Useful variations on binary search
|
||||
- Basic principle of search: sorting is easy and is something algorithm designers should always try
|
||||
- Binary search is possible once you have a sorted array
|
||||
- End of chapter questions:
|
||||
- Skiena chapter 4 question solutions on wiki
|
||||
|
||||
|
||||
<a name="sort"></a>
|
||||
### Sort
|
||||
|
||||
[ ] Sort Algorithms
|
||||
[ ] Algorithms: Selection sort
|
||||
- 07/13-07/15 - Skiena
|
||||
- Books:
|
||||
- Skiena Chapter 4
|
||||
- Merge sort, selection sort, heap sort, insertion sort, and quick sort covered
|
||||
- Focus is on utility of sorting for enabling algorithm design
|
||||
- Wiki notes:
|
||||
- [https://charlesreid1.com/wiki/Algorithms/Sort](https://charlesreid1.com/wiki/Algorithms/Sort)
|
||||
- [https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions](https://charlesreid1.com/wiki/Algorithmic_Analysis_of_Sort_Functions)
|
||||
|
||||
Fast:
|
||||
[ ] Algorithms: Merge sort
|
||||
[ ] Algorithms: Quick sort
|
||||
[ ] Algorithms: Heap sort
|
||||
[ ] Algorithms: Quick sort
|
||||
|
||||
Slower:
|
||||
[ ] Algorithms: Selection sort
|
||||
[ ] Algorithms: Insertion sort
|
||||
|
||||
### Divide and Conquer
|
||||
|
||||
[ ] Divide and Conquer algorithm approach
|
||||
- Several MIT lectures from 07/01-07/15
|
||||
- 07/13-07/15 - Skiena
|
||||
- Books:
|
||||
- Skiena Chapter 4
|
||||
- Divide and conquer algorithms
|
||||
- Master theorem
|
||||
- (Light on explanation of the Master Theorem)
|
||||
- Wiki notes:
|
||||
- [https://charlesreid1.com/wiki/Divide_and_Conquer](https://charlesreid1.com/wiki/Divide_and_Conquer)
|
||||
- [https://charlesreid1.com/wiki/Divide_and_Conquer/Master_Theorem](https://charlesreid1.com/wiki/Divide_and_Conquer/Master_Theorem)
|
||||
|
||||
|
||||
<a name="strings"></a>
|
||||
### Strings
|
||||
@@ -576,27 +673,31 @@ Notes:
|
||||
- Part 2 - Solution
|
||||
- Part 3 - Code
|
||||
- blog post: [http://charlesreid1.github.io/cse-143-final-project-hilbert-sort-1-the-problem.html](http://charlesreid1.github.io/cse-143-final-project-hilbert-sort-1-the-problem.html)
|
||||
- git code:
|
||||
- git code: [https://charlesreid1.com:3000/cs/finalproject-143/src/master/hilbert/HilbertSort.java](https://charlesreid1.com:3000/cs/finalproject-143/src/master/hilbert/HilbertSort.java)
|
||||
|
||||
|
||||
[ ] Project Euler Blogging
|
||||
* Even Fibonacci numbers - performance, comparisons of methods to get Fib numbers, some maths
|
||||
|
||||
|
||||
|
||||
- 07/14 - continued fractions
|
||||
- Even Fibonacci numbers - performance, comparisons of methods to get Fib numbers, some maths
|
||||
- Continued fractions
|
||||
- Published 07/14
|
||||
- blog post: part 1: newton's method [http://charlesreid1.github.io/computing-square-roots-part-1-using-newtons-method.html](http://charlesreid1.github.io/computing-square-roots-part-1-using-newtons-method.html)
|
||||
- blog post: part 2: continued fractions: [http://charlesreid1.github.io/computing-square-roots-part-2-using-continued-fractions.html](http://charlesreid1.github.io/computing-square-roots-part-2-using-continued-fractions.html)
|
||||
|
||||
|
||||
Timing and performance:
|
||||
* Results of big-O computations and verifications
|
||||
- Results of big-O computations and verifications
|
||||
|
||||
|
||||
OOP:
|
||||
* Data structures, checklists, and cheat sheets
|
||||
- Data structures, checklists, and cheat sheets
|
||||
|
||||
|
||||
Other ideas:
|
||||
* Mind maps of concepts and relations, plus links and code
|
||||
* Helpful YouTube videos and projects they lead to
|
||||
* Particularly insightful mathematical questions,
|
||||
* Post-chapter questions and answers
|
||||
- Mind maps of concepts and relations, plus links and code
|
||||
- Helpful YouTube videos and projects they lead to
|
||||
- Particularly insightful mathematical questions,
|
||||
- Post-chapter questions and answers
|
||||
|
||||
|
||||
|
||||
@@ -611,6 +712,10 @@ Notes:
|
||||
[ ] Project Euler
|
||||
- 06/14 - 06/17
|
||||
- 06/23 - Decathlete (first 10 solved)
|
||||
- 07/01-07/02 - up to 15, 51, 100, 500
|
||||
- 07/04 - 16, 17, 52, 53, 100
|
||||
- 07/08 - 501 (sink)
|
||||
- 07/10-07/13 - 500 thru 502 (more sinks)
|
||||
- Wiki notes:
|
||||
- [https://charlesreid1.com/wiki/Project_Euler](https://charlesreid1.com/wiki/Project_Euler)
|
||||
- Git code:
|
||||
|
||||
Reference in New Issue
Block a user