1
0
mirror of https://gitlab.com/magicalsoup/Highschool.git synced 2025-01-23 16:11:46 -05:00

Update Merge Sort.md

This commit is contained in:
James Su 2019-10-25 16:05:02 +00:00
parent 3ceca1853b
commit 057498ebc0

View File

@ -1,4 +1,25 @@
## Introduction
Merge sort is a comparison type sort that has an effective use of recursion and the divide and conquer algorithm.
Merge sort sorts in O(N log N) time and uses O(N log N) space.We will explore the pros and cons of this sort,
the proofs on its time and space complexity and the implementation and algorithm of this sorting method.
Merge sort is a comparison type sort that has an effective use of recursion and the divide and conquer algorithm. <br>
Merge sort sorts in $`O(N \log N)`$ time and uses $`O(N \log N)`$ space. <br>
We will explore the pros and cons of this sort the proofs on its time and space complexity and the implementation and algorithm of this sorting method.
**Abstract:** Given two sorted arrays $`a_{lo}`$ to $`a_{mid}`$ and $`a_{mid+1}`$ to $`a_{hi}`$, replace with sorted subarray $`a_{lo}`$ to $`a_{hi}`$.
## Basic Algorithm
- Divide array into 2 halves
- Recursively sort each half
- Merge the two halfs.
```py
def mergesort(left, right, array[]):
if left <= right:
mid = (left + right) / 2
mergesort(left, mid, array[])
mergesort(mid+1, right, array[])
mergehalves(left, mid, right, array[])
```
## Running Time Analysis
- Latop computer can run close to $`10^8`$ per second.
- Supercomputer can execute $`10^{12}`$ compares per second.