Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bfde129

Browse files
improve readme
1 parent 3cfe790 commit bfde129

File tree

1 file changed

+29
-27
lines changed

1 file changed

+29
-27
lines changed

‎README.adoc‎

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,52 +7,54 @@ This repository covers the implementation of the classical algorithms and data s
77

88
toc::[]
99

10+
## Book
11+
12+
.You can check out the book that goes deeper into each topic and provide addtional illustrations and explanations.
13+
- Algorithmic toolbox to avoid getting stuck while coding.
14+
- Explains data structures similarities and differences.
15+
- Algorithm analysis fundamentals (Big O notation, Time/Space complexity) and examples.
16+
- Time/space complexity cheatsheet.
17+
18+
image:book/cover.png[link=https://gum.co/dsajs, height=400]
19+
1020
## Data Structures
1121
We are covering the following data structures.
1222

1323
image:https://user-images.githubusercontent.com/418605/46118890-ba721180-c1d6-11e8-82bc-6a671428b422.png[link=https://embed.kumu.io/85f1a4de5fb8430a10a1bf9c5118e015]
1424

1525
### Linear Data Structures
16-
1. **Arrays**: Built-in in most languages so not implemented here. https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Array[Details].
17-
2. **Linked Lists**: each data node has a link to the next (and previous). https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/linked-lists[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Linked-Lists[Details].
18-
3. **Queue**: data flows in a "first-in, first-out" (FIFO) manner. https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/queues[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Queues[Details]
19-
4. **Stacks**: data flows in a "last-in, first-out" (LIFO) manner. https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Stacks[Code] | https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/stacks[Details].
26+
1. **Arrays**: Built-in in most languages so not implemented here. https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Array[Post].
27+
2. **Linked Lists**: each data node has a link to the next (and previous). https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/linked-lists/linked-list.js[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Linked-Lists[Post].
28+
3. **Queue**: data flows in a "first-in, first-out" (FIFO) manner. https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/queues/queue.js[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Queues[Post]
29+
4. **Stacks**: data flows in a "last-in, first-out" (LIFO) manner. https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/stacks/stack.js[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Stacks[Post].
2030

2131
### Non-Linear Data Structures
22-
1. **Trees**: data nodes has zero or more adjacent nodes a.k.a. children. Each node can only have one parent node otherwise is a graph not a tree. https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees[Code] | https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/[Details]
23-
.. **Binary Trees**: same as tree but only can have two children at most. https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Trees[Details]
24-
.. **Binary Search Trees** (BST): same as binary tree, but the nodes value keep this order `left < parent < rigth`. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/binary-search-tree.js[Code]] | https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Search-Tree-BST[Details]
25-
.. **AVL Trees**: Self-balanced BST to maximize look up time. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/avl-tree.js[Code] | https://adrianmejia.com/blog/2018/07/16/self-balanced-binary-search-trees-with-avl-tree-data-structure-for-beginners/[Details]
32+
1. **Trees**: data nodes has zero or more adjacent nodes a.k.a. children. Each node can only have one parent node otherwise is a graph not a tree. https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees[Code] | https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/[Post]
33+
.. **Binary Trees**: same as tree but only can have two children at most. https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees[Code] | https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Trees[Post]
34+
.. **Binary Search Trees** (BST): same as binary tree, but the nodes value keep this order `left < parent < rigth`. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/binary-search-tree.js[Code]] | https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Search-Tree-BST[Post]
35+
.. **AVL Trees**: Self-balanced BST to maximize look up time. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/avl-tree.js[Code] | https://adrianmejia.com/blog/2018/07/16/self-balanced-binary-search-trees-with-avl-tree-data-structure-for-beginners/[Post]
2636
.. **Red-Black Trees**: Self-balanced BST more loose than AVL to maximize insertion speed. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/red-black-tree.js[Code]
2737
2. **Maps**: key-value store.
28-
.. **Hash Maps**: implements map using a hash function. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/hash-maps/hashmap.js[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#HashMaps[Details]
38+
.. **Hash Maps**: implements map using a hash function. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/hash-maps/hashmap.js[Code] | https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#HashMaps[Post]
2939
.. **Tree Maps**: implement map using a self-balanced BST. https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/maps/tree-maps/tree-map.js[Code]
30-
3. **Graphs**: data *nodes* that can have a connection or *edge* to zero or more adjacent nodes. Unlike trees, nodes can have multiple parents, loops. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/graphs/graph.js[Code] | https://adrianmejia.com/blog/2018/05/14/data-structures-for-beginners-graphs-time-complexity-tutorial/[Details]
40+
3. **Graphs**: data *nodes* that can have a connection or *edge* to zero or more adjacent nodes. Unlike trees, nodes can have multiple parents, loops. https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/graphs/graph.js[Code] | https://adrianmejia.com/blog/2018/05/14/data-structures-for-beginners-graphs-time-complexity-tutorial/[Post]
3141

3242
## Algorithms
3343

3444
.We cover the following algorithms and techniques.
3545
* Sorting algorithms
36-
** Bubble Sort: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/bubble-sort.js[Code]
37-
** Insertion Sort: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/insertion-sort.js[Code]
38-
** Selection Sort: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/selection-sort.js[Code]
39-
** Merge Sort: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/merge-sort.js[Code]
40-
** Quicksort: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/quick-sort.js[Code]
46+
** Bubble Sort. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/bubble-sort.js[Code]
47+
** Insertion Sort. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/insertion-sort.js[Code]
48+
** Selection Sort. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/selection-sort.js[Code]
49+
** Merge Sort. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/merge-sort.js[Code]
50+
** Quicksort. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/quick-sort.js[Code]
4151
* Greedy Algorithms
42-
** Fractional Knapsack Problem: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/knapsack-fractional.js[Code]
52+
** Fractional Knapsack Problem. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/knapsack-fractional.js[Code]
4353
* Divide and Conquer
44-
** Fibonacci Numbers: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js[Code]
54+
** Fibonacci Numbers. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js[Code]
4555
* Dynamic Programming
46-
** Fibonacci with memoization: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js[Code]
56+
** Fibonacci with memoization. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js[Code]
4757
* Backtracking algorithms
48-
** Word permutations: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js[Code]
58+
** Word permutations. https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js[Code]
4959
50-
## Book
5160
52-
.You can check out the book that goes deeper into each topic and provide addtional illustrations and explanations.
53-
- Algorithmic toolbox to avoid getting stuck while coding.
54-
- Explains data structures similarities and differences.
55-
- Algorithm analysis fundamentals (Big O notation, Time/Space complexity) and examples.
56-
- Time/space complexity cheatsheet.
57-
58-
image:book/cover.png[link=https://gum.co/dsajs, height=400]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /