diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md index 96a8274a2..88536afc3 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/102-insertion-sort.md @@ -1 +1,8 @@ -# Insertion sort \ No newline at end of file +# Insertion Sort + +Insertion sort is a simple sorting algorithm that builds the final sorted array one item at a time by comparisons. It is much less efficient on large lists than more advanced algorithms such as quicksort, heapsort, or merge sort. + +Free Content +Insertion Sort — MIT +Insertion Sort in 3 Minutes +Insertion Sort Algorithm diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md index 25497554f..d92404c1d 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/103-heap-sort.md @@ -1 +1,16 @@ -# Heap sort \ No newline at end of file +# Heap Sort + +Heap sort is a comparison based sorting algorithm. It is similar to selection sort where we first find the maximum element and place the maximum element at the end. We repeat the same process for remaining element. + +Free Content +Heap Sort Algorithm +Heap Sort Algorithm - Geeks for Geeks +Heap Sort in 4 Minutes +Heap Sort Algorithm - MIT +Heap Sort Algorithm +Lecture 4 - Heaps and Heap Sort + + + + + diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md index 5c1aef942..27c0b79d3 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/104-quick-sort.md @@ -1 +1,10 @@ -# Quick sort \ No newline at end of file +# Quick Sort + +Quick Sort is a divide and conquer algorithm. It picks an element as pivot and partitions the given array around the picked pivot. There are many different versions of quickSort that pick pivot in different ways. + +Free Content +Quick Sort Algorithm +Quick Sort Algorithm - Geeks for Geeks +Quick Sort in 4 Minutes +Quick Sort Implementaiton in C +Quick Sort Implementation in Python diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md index ea6ce4754..2b5e3f5ce 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/100-sorting-algorithms/105-merge-sort.md @@ -1 +1,9 @@ -# Merge sort \ No newline at end of file +# Merge Sort + +Merge sort is a divide and conquer algorithm. It divides the input array into two halves, calls itself for the two halves, and then merges the two sorted halves. The `merge()` function is used for merging two halves. The `merge(arr, l, m, r)` is key process that assumes that `arr[l..m]` and `arr[m+1..r]` are sorted and merges the two sorted sub-arrays into one. + +Free Content +Merge Sort - Geeks for Geeks +Merge Sort Algorithm +Merge Sort for Linked Lists +Merge Sort in 3 Minutes diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md index 9a9c156e8..4b59d6502 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/100-pre-order-traversal.md @@ -1 +1,7 @@ -# Pre order traversal \ No newline at end of file +# Pre-Order Traversal + +Pre-order traversal is a tree traversal algorithm that visits the root node first, then recursively traverses the left subtree, followed by the right subtree. + +Free Content +Tree | Illustrated Data Structures +Tree Traversals (Inorder, Preorder and Postorder) diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md index 654ff707d..a3d5dc22a 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/101-in-order-traversal.md @@ -1 +1,7 @@ -# In order traversal \ No newline at end of file +# In-Order Traversal + +In-order traversal is a tree traversal algorithm that visits the left subtree, the root, and then the right subtree. This is the most common way to traverse a binary search tree. It is also used to create a sorted list of nodes in a binary search tree. + +Free Content +Tree | Illustrated Data Structures +Tree Traversals (Inorder, Preorder and Postorder) diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md index 07da743f0..1321adcf7 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/102-post-order-traversal.md @@ -1 +1,7 @@ -# Post order traversal \ No newline at end of file +# Post-Order Traversal + +Post-order traversal is a type of tree traversal that visits the left subtree, then the right subtree, and finally the root node. This is the opposite of pre-order traversal, which visits the root node first, then the left subtree, and finally the right subtree. + +Free Content +Tree | Illustrated Data Structures +Tree Traversals (Inorder, Preorder and Postorder) diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md index a238b787e..4dab44530 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/103-breadth-first-search.md @@ -1 +1,8 @@ -# Breadth first search \ No newline at end of file +# Breadth First Search + +Breadth first search is a graph traversal algorithm that starts at the root node and explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level. + +Free Content +BFS and DFS in a Binary Tree +Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java +Breadth-first search in 4 minutes diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md index 4daf7be36..9d816c33d 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/104-depth-first-search.md @@ -1 +1,8 @@ -# Depth first search \ No newline at end of file +# Depth First Search + +Depth first search is a graph traversal algorithm that starts at a root node and explores as far as possible along each branch before backtracking. + +Free Content +BFS and DFS in a Binary Tree +Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java +Depth First Search in 4 Minutes diff --git a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md index 6beb2a993..f5debc81f 100644 --- a/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md +++ b/content/roadmaps/103-computer-science/content/104-common-algorithms/101-tree-algorithms/readme.md @@ -1 +1,12 @@ -# Tree algorithms \ No newline at end of file +# Tree Algorithms + +A tree is non-linear and a hierarchical data structure consisting of a collection of nodes such that each node of the tree stores a value and a list of references to other nodes (the “children”). + +Here is the list of common tree algorithms: + +- Tree Traversal: + - Pre-Order Traversal + - In-Order Traversal + - Post-Order Traversal +- Breadth First Search +- Depth First Search