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)
|
* [Dictionaries and Maps and Hash Tables](#dict)
|
||||||
* [Sets, Skip Lists](#sets)
|
* [Sets, Skip Lists](#sets)
|
||||||
* [Search Trees](#searchtrees)
|
* [Search Trees](#searchtrees)
|
||||||
* [Graphs](#graphs)
|
|
||||||
* [Advanced Data Structures (Skiena)](#adv)
|
* [Advanced Data Structures (Skiena)](#adv)
|
||||||
|
* [Graphs](#graphs)
|
||||||
|
* [Study Guides](#studyguides)
|
||||||
* [Data Structures and Libraries](#lib)
|
* [Data Structures and Libraries](#lib)
|
||||||
* Guava
|
* Guava
|
||||||
* Apache Commons
|
* Apache Commons
|
||||||
@@ -260,6 +261,8 @@ Table of Contents:
|
|||||||
- 06/23
|
- 06/23
|
||||||
- Books:
|
- Books:
|
||||||
- Goodrich Python/Java books covering priority queue theory/concepts
|
- 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:
|
- Wiki notes:
|
||||||
- Binary search trees
|
- Binary search trees
|
||||||
- Heap sort
|
- Heap sort
|
||||||
@@ -278,26 +281,26 @@ Table of Contents:
|
|||||||
[ ] Dictionaries/Maps/Hash Tables
|
[ ] Dictionaries/Maps/Hash Tables
|
||||||
- 06/02 - 06/03 - Skiena advanced data structures
|
- 06/02 - 06/03 - Skiena advanced data structures
|
||||||
- 06/19 - 06/21 - Goodrich book
|
- 06/19 - 06/21 - Goodrich book
|
||||||
|
- 06/23 - 06/25 - Videos
|
||||||
- Books:
|
- Books:
|
||||||
- Skiena Chapter 3
|
- Skiena Chapter 3
|
||||||
- Goodrich Chapter 10 - FIRST HALF
|
- Goodrich Chapter 10 - FIRST HALF
|
||||||
- Online Videos:
|
- Online Videos:
|
||||||
- MIT 6.006 Intro to Algorithms: Erik Demaine
|
- [Hashing with chaining (MIT 6.006)](https://www.youtube.com/watch?v=0M_kIqhwbFo)
|
||||||
- [Lecture 8: Hashing with chaining](https://www.youtube.com/watch?v=0M_kIqhwbFo)
|
- [Table doubling (MIT 6.006)](https://www.youtube.com/watch?v=BRO7mVIFt08)
|
||||||
- [Lecture 9: Table doubling](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:
|
- 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:
|
- Git code:
|
||||||
|
- [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)
|
||||||
<a name="hash"></a>
|
- 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)
|
||||||
## Hash Tables
|
|
||||||
|
|
||||||
[ ] Hash tables: (Detail topic?)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -309,6 +312,21 @@ Table of Contents:
|
|||||||
|
|
||||||
|
|
||||||
[ ] Sets and Skip Lists
|
[ ] 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>
|
<a name="searchtrees"></a>
|
||||||
### Search Trees
|
### 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>
|
<a name="graphs"></a>
|
||||||
### Graphs
|
### 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)
|
- [https://charlesreid1.com/wiki/Priority_Queues](https://charlesreid1.com/wiki/Priority_Queues)
|
||||||
- End of chapter questions:
|
- End of chapter questions:
|
||||||
- Skiena chapter 3 question solutions on wiki
|
- Skiena chapter 3 question solutions on wiki
|
||||||
Git code:
|
|
||||||
|
|
||||||
(This ended up being quite a jump in a different direction.
|
(This ended up being quite a jump in a different direction.
|
||||||
Much more practical focus on algorithms, only the most useful data structures,
|
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
|
[X] Algorithm complexity and big-oh notation
|
||||||
- 05/26, 05/27
|
- 05/26, 05/27
|
||||||
|
- Revisiting 7/15
|
||||||
- Books:
|
- Books:
|
||||||
- Goodrich et al: Data Structures and Algorithms in Python
|
- Goodrich et al: Data Structures and Algorithms in Python
|
||||||
- Skiena: Algorithm Design Manual
|
- Skiena: Algorithm Design Manual
|
||||||
@@ -435,21 +493,60 @@ Some libraries that provide data structures in Java.
|
|||||||
|
|
||||||
[ ] Algorithms: Backtracking
|
[ ] Algorithms: Backtracking
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a name="search"></a>
|
<a name="search"></a>
|
||||||
### Search
|
### Search
|
||||||
|
|
||||||
[ ] Sequential search
|
[ ] Sequential search
|
||||||
|
|
||||||
[ ] Binary 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>
|
<a name="sort"></a>
|
||||||
### Sort
|
### Sort
|
||||||
|
|
||||||
[ ] Sort Algorithms
|
[ ] 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: Merge sort
|
||||||
[ ] Algorithms: Quick sort
|
|
||||||
[ ] Algorithms: Heap 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>
|
<a name="strings"></a>
|
||||||
### Strings
|
### Strings
|
||||||
@@ -576,27 +673,31 @@ Notes:
|
|||||||
- Part 2 - Solution
|
- Part 2 - Solution
|
||||||
- Part 3 - Code
|
- 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)
|
- 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
|
[ ] 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:
|
Timing and performance:
|
||||||
* Results of big-O computations and verifications
|
- Results of big-O computations and verifications
|
||||||
|
|
||||||
|
|
||||||
OOP:
|
OOP:
|
||||||
* Data structures, checklists, and cheat sheets
|
- Data structures, checklists, and cheat sheets
|
||||||
|
|
||||||
|
|
||||||
Other ideas:
|
Other ideas:
|
||||||
* Mind maps of concepts and relations, plus links and code
|
- Mind maps of concepts and relations, plus links and code
|
||||||
* Helpful YouTube videos and projects they lead to
|
- Helpful YouTube videos and projects they lead to
|
||||||
* Particularly insightful mathematical questions,
|
- Particularly insightful mathematical questions,
|
||||||
* Post-chapter questions and answers
|
- Post-chapter questions and answers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -611,6 +712,10 @@ Notes:
|
|||||||
[ ] Project Euler
|
[ ] Project Euler
|
||||||
- 06/14 - 06/17
|
- 06/14 - 06/17
|
||||||
- 06/23 - Decathlete (first 10 solved)
|
- 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:
|
- Wiki notes:
|
||||||
- [https://charlesreid1.com/wiki/Project_Euler](https://charlesreid1.com/wiki/Project_Euler)
|
- [https://charlesreid1.com/wiki/Project_Euler](https://charlesreid1.com/wiki/Project_Euler)
|
||||||
- Git code:
|
- Git code:
|
||||||
|
|||||||
Reference in New Issue
Block a user