1
0
mirror of https://gitlab.com/magicalsoup/Highschool.git synced 2025-01-24 00:21:45 -05:00
highschool/Grade 10/Computer Science/ICS4U1/Sorting Methods/Merge Sort.md

26 lines
991 B
Markdown
Raw Normal View History

2019-10-25 11:49:39 -04:00
## Introduction
2019-10-25 12:05:02 -04:00
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.