# Writing a Merge Sort in Pseudocode

A merge sort is known as a "divide and conquer" sorting algorithm. A merge sort operates by repeatably dividing the data set into halves, to provide data sets that can be easily sorted, and therefore re-assembled.

Often merge sorts can be quite complex to understand. That is why we developed a pseudocode merge sort algorithm, that is explained thoroughly throughout this guide.

We follow the pseudocode standard set by the main computer science exam board in the UK, AQA, allowing a universal set of functions and operators to be used. This makes it much easier for programmers to understand each other's pseudocode!

## Basics:

- During a merge sort, the data set needs to be
**split into halves with every iteration**. - Within a pseudocode merge sort algorithm, we need to use
**selection (IF statements), iteration (WHILE loops), and arrays**!

## Advantages:

- Merge sort algorithms are often very efficient due to only searching half of a given data set.
- Within pseudocode, merge sorts can be written within few lines of code.

## A Pseudocode Merge Sort

We have written a merge sort in pseudocode, with detailed explanations for what each part does. Merge sorts can be difficult to write, so we want to ensure it is easier for writing both merge sorts in pseudocode, and other languages.

### 1) Create a Data Set

First of all, **we need to create a data set to sort**. This can be done by just declaring an array and a subroutine in our pseudocode.

### 2) Sorting the Array

Here we sort the array using recursion. First, we split the initial array into two halves then we repeat this until we have the data set as multiple arrays with only 2 values.

Then, we sort those using the iteration seen within the while loop. This then assembles the new array, in the correct order.

### 3) Outputting The New Array

This loops through the array using iteration to display the value at each index.

### The Entire Merge Sort

This a working example of how to carry out a merge sort in pseudocode. Try this in our online pseudocode editor and compiler!

I hope this helped you, you should now understand **what a merge sort algorithm** is, **how to code a merge sort in pseudocode**, and the **advantages of using merge sort** in your program!