|
@@ -35,24 +35,42 @@
|
|
|
* - Efficiency with Algorithms, Performance with Data Structures: https://youtu.be/fHNmRkzxHWs
|
|
|
- review: https://www.youtube.com/watch?v=Rub-JsjMhWY
|
|
|
|
|
|
-compilers:
|
|
|
+* - compilers:
|
|
|
* - https://class.coursera.org/compilers-004/lecture/1
|
|
|
* - https://class.coursera.org/compilers-004/lecture/2
|
|
|
* - C++: https://www.youtube.com/watch?v=twodd1KFfGk
|
|
|
* - Understanding Compiler Optimization (C++): https://www.youtube.com/watch?v=FnGCDLhaxKU
|
|
|
|
|
|
-how computers process a program:
|
|
|
- - https://www.youtube.com/watch?v=42KTvGYQYnA
|
|
|
- - https://www.youtube.com/watch?v=Mv2XQgpbTNE
|
|
|
- - https://www.youtube.com/watch?v=h8T3PWauYF4
|
|
|
+* - how computers process a program:
|
|
|
+ * - https://www.youtube.com/watch?v=42KTvGYQYnA
|
|
|
+ * - https://www.youtube.com/watch?v=Mv2XQgpbTNE
|
|
|
+
|
|
|
+----------------------------------------------------------------
|
|
|
+
|
|
|
+The Gauntlet:
|
|
|
+Each day I take one subject from the list below, watch videos about that subject, and write an implementation in:
|
|
|
+ C
|
|
|
+ C++ - without using built-in types
|
|
|
+ C++ - using built-in types, like STL's std::list for a linked list
|
|
|
+ Python - without using built-in types
|
|
|
+ and write tests to ensure I'm doing it right
|
|
|
+Why code in all of these?
|
|
|
+ Practice, practice, practice, until I'm sick of it, and can do it with no problem (some have many edge cases and bookkeeping details to remember)
|
|
|
+ Work within the raw constraints (without garbage collection (except Python))
|
|
|
+ Make use of built-in types so I have experience using the built-in tools for real-world use (not going to write my own linked list implementation in production)
|
|
|
+
|
|
|
+----------------------------------------------------------------
|
|
|
|
|
|
linked lists
|
|
|
- - https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
|
|
|
- singly-linked
|
|
|
- - https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists
|
|
|
+ * - Description: https://www.coursera.org/learn/data-structures/lecture/kHhgK/singly-linked-lists
|
|
|
+ * - C Code (can jump to 6 minutes in): https://www.youtube.com/watch?v=KjtPAW5jyo8
|
|
|
+ - Java Code: https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/uwobd/core-java-code-for-a-linked-list
|
|
|
- doubly-linked
|
|
|
- - https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists
|
|
|
+ - Description: https://www.coursera.org/learn/data-structures/lecture/jpGKD/doubly-linked-lists
|
|
|
- reverse a singly-linked list
|
|
|
+ - why you should avoid linked lists:
|
|
|
+ - https://www.youtube.com/watch?v=YQs6IC-vgmo
|
|
|
stacks
|
|
|
- see: https://class.coursera.org/algs4partI-010/lecture
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/UdKzQ/stacks
|
|
@@ -62,6 +80,12 @@ queues
|
|
|
arrays
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/OsBSF/arrays
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/EwbnV/dynamic-arrays
|
|
|
+ - Time
|
|
|
+ - O(1) to add/remove at end (amortized for allocations for more space), index, or update
|
|
|
+ - O(n) to insert/remove elsewhere
|
|
|
+ - Space
|
|
|
+ - contiguous in memory, so proximity helps performance
|
|
|
+ - space needed = size of object * number of items to store
|
|
|
Vectors
|
|
|
- Vector calculus ?
|
|
|
heaps
|