diff --git a/docs/en/README.md b/docs/en/README.md index 4ea51489..01586edb 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -1,4 +1,6 @@ # Algorithms +## Sorting +- [Merge Sort](./Sorting/Merge-Sort.md) ## Strings - [Palindrome](./Strings/Palindrome.md) diff --git a/docs/en/Sorting/Merge-Sort.md b/docs/en/Sorting/Merge-Sort.md new file mode 100644 index 00000000..d07b09fe --- /dev/null +++ b/docs/en/Sorting/Merge-Sort.md @@ -0,0 +1,25 @@ +# 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. + +## Steps +1. Find the middle point to divide the array into two halves. +2. Call mergeSort for first half. +3. Call mergeSort for second half. +4. Merge the two halves sorted in step 2 and 3. + +## Example +Given array is +**12 11 13 5 6 7** + +Sorted array is +**5 6 7 11 12 13** + +## Implementation +- [Java](../../../algorithms/Java/sorting/merge-sort.java) +- [C](../../../algorithms/C/sorting/merge-sort.c) + +## Video URL +[Youtube Video about Merge Sort](https://www.youtube.com/watch?v=jlHkDBEumP0) + +## Others +[Wikipedia](https://en.wikipedia.org/wiki/Merge_sort)