2.1.14

Merge Sort

Test yourself

Merge Sort

Merge sort is an example of a divide and conquer algorithm, where the problem is broken down into smaller steps.

Illustrative background for The conceptIllustrative background for The concept ?? "content

The concept

  • If we have two packs of cards, which are both already in order and want to combine them, what can we do?
  • One solution is to only consider the top card of each pile, and create a new deck starting from the smaller of the two cards.
  • This will give us a combined sorted pack.
  • This is called merge sort.
Illustrative background for In EnglishIllustrative background for In English ?? "content

In English

  • Split the lists into lists of size one.
  • Merge each pair of sublists by comparing the first value of each list and putting the smaller value into the new list first.
  • Continue merging until there is only one list.
  • It is always the first two items of two adjacent lists that are being compared.
  • Some lists may end up one-sided, where many more numbers in one list are compared with fewer numbers in another for the final merge. That is ok! The lists do not always need to remain balanced.
Illustrative background for ExampleIllustrative background for Example ?? "content

Example

  • We will sort the list [12, 5, 9, 1] using merge sort.
  • Step 1: Split the list until each piece has one element
  • Step 2: Merge [12] and [5]
    • 5 < 12 → 5 'comes down'
  • Step 3: Merge [12] and [ ]
    • 12 'comes down'
  • Step 4: Merge [9] and [1]
    • 1 'comes down'
  • Step 5: Merge [9] and [ ]
    • 9 'comes down'
  • Step 6: Merge [5, 12] and [1, 9]
    • Compare first items
    • 5 > 1
    • 1 'comes down'
  • Step 7: Compare first items
    • 5 < 9
    • 5 'comes down'
  • Step 8: Compare first items
    • 12 > 9
    • 9 'comes down'
  • Step 9:
    • 12 comes down
Illustrative background for Pros and cons of merge sort:Illustrative background for Pros and cons of merge sort: ?? "content

Pros and cons of merge sort:

  • Pros:
    • A very efficient algorithm.
  • Cons:
    • Can be slower for small lists.
    • Needs additional memory.

Jump to other topics

1Computer Systems

1.1Systems Architecture

1.2Memory & Storage

1.3Computer Networks, Connections & Protocols

1.4Network Security

1.5Systems Software

1.6Ethical, Legal, Cultural & Environmental Concern

2Computational Thinking, Algorithms & Programming

2.1Algorithms

2.2Programming Fundamentals

2.3Producing Robust Programs

2.4Boolean Logic

2.5Programming Languages & IDEs

Unlock your full potential with Seneca Premium

  • Unlimited access to 10,000+ open-ended exam questions

  • Mini-mock exams based on your study history

  • Unlock 800+ premium courses & e-books

Get started with Seneca Premium