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 3cfe790

Browse files
improve readme
1 parent 38e8b3d commit 3cfe790

File tree

2 files changed

+58
-48
lines changed

2 files changed

+58
-48
lines changed

‎README.adoc

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
= Data Structures and Algorithms in JavaScript
2+
:toc: macro
3+
:toclevels: 2
4+
Adrian Mejia <https://github.com/amejiarosario[@amejiarosario]>
5+
6+
This repository covers the implementation of the classical algorithms and data structures in JavaScript.
7+
8+
toc::[]
9+
10+
## Data Structures
11+
We are covering the following data structures.
12+
13+
image:https://user-images.githubusercontent.com/418605/46118890-ba721180-c1d6-11e8-82bc-6a671428b422.png[link=https://embed.kumu.io/85f1a4de5fb8430a10a1bf9c5118e015]
14+
15+
### 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].
20+
21+
### 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]
26+
.. **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]
27+
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]
29+
.. **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]
31+
32+
## Algorithms
33+
34+
.We cover the following algorithms and techniques.
35+
* 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]
41+
* Greedy Algorithms
42+
** Fractional Knapsack Problem: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/knapsack-fractional.js[Code]
43+
* Divide and Conquer
44+
** Fibonacci Numbers: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js[Code]
45+
* Dynamic Programming
46+
** Fibonacci with memoization: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js[Code]
47+
* Backtracking algorithms
48+
** Word permutations: https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js[Code]
49+
50+
## Book
51+
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]

‎README.md

Lines changed: 0 additions & 48 deletions
This file was deleted.

0 commit comments

Comments
(0)

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