GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Algorithms
  • Sorting Algorithms
  • AVINASH NETHALA
  • 5 years ago4 years ago
  • Next: Selection Sort Algorithm in Python

This view

  • Original page
  • New address

GeezerVison is showing www.programminginpython.com — Merge Sort Algorithm in Python - Programming In Python

Hello everyone, welcome back to Programming In Python. Here in this post am going to tell you how to implement Merge Sort Algorithm in Python. In the previous posts, I have said about Selection Sort and Bubble Sort, here this Merge sort is much more efficient than those two algorithms as their time complexity is O(n2) in the average case and here it is O(n log n) in the worst case, this says how efficient Merge sort is than Selection and Bubble sort.

Merge sort algorithm is a divide and conquer algorithm, where the main unsorted list is divided into 2 halves, and each of the halves is again divided into 2 halves until only a single element is left in the list. Now merge these sublists by sorting them and finally, the main list is sorted.

You can also watch the video on YouTube here

Program on GitHub

See the animation below,

By Swfung8 – Own work, CC BY-SA 3.0, Link

Time Complexity Of Merge Sort

Best Case O(n log n)
Average Case O(n log n)
Worst Case O(n log n)

Algorithm

  1. Divide the unsorted list into n sublists, until each list has only 1 element (a list of 1 element is considered sorted).
  2. Repeatedly merge sublists to produce new sorted sublists until there is only 1 sublist remaining. This will be the sorted list.

Merge Sort Algorithm – Code Visualization

Program on GitHub

Program

__author__ = 'Avinash'


def merge_sort(sort_list):
    print("splitting", sort_list)
    if len(sort_list) > 1:

        mid = len(sort_list) // 2
        leftHalf = sort_list[:mid]
        rightHalf = sort_list[mid:]

        merge_sort(leftHalf)
        merge_sort(rightHalf)

        i = 0
        j = 0
        k = 0

        while i < len(leftHalf) and j < len(rightHalf):
            if leftHalf[i] < rightHalf[j]:
                sort_list[k] = leftHalf[i]
                i = i + 1
            else:
                sort_list[k] = rightHalf[j]
                j = j + 1
            k = k + 1

        while i < len(leftHalf):
            sort_list[k] = leftHalf[i]
            i = i + 1
            k = k + 1

        while j < len(rightHalf):
            sort_list[k] = rightHalf[j]
            j = j + 1
            k = k + 1

    print("merging...", sort_list)

lst = []

size = int(input("Enter size of the list: \t"))

for i in range(size):
    elements = int(input("Enter an element: \t"))
    lst.append(elements)

merge_sort(lst)

Ad:
Learn Python Programming Masterclass – Enroll Now.
Udemy

Output

Merge Sort Algorithm in Python

Merge Sort Algorithm

Program on GitHub

Also, feel free to look at other sorting algorithms like Bubble Sort or Selection Sort and searching algorithms like Linear Search and Binary Search.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Online Python Compiler

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • More
  • Click to print (Opens in new window) Print
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Related Posts

Heap Sort Algorithm in Python

Heap Sort Algorithm in Python

AVINASH NETHALA4 years ago2 years ago 0
Bubble Sort algorithm in Python

Bubble Sort algorithm in Python

AVINASH NETHALA4 years ago4 years ago 0
Python program to implement Binary Search Algorithm

Python program to implement Binary Search Algorithm

AVINASH NETHALA4 years ago4 years ago 0
Python program to implement Linear Search Algorithm

Python program to implement Linear Search Algorithm

AVINASH NETHALA5 years ago4 years ago 0

Recent Posts

  • Python vs R: Which Language is Better for Data Science?
  • Top 7 Python Books You Must Read in 2025
  • Best Python Web Frameworks: Django, Flask, and FastAPI Breakdown
  • 20 Best Python One-Liners to Boost Your Coding Skills
  • Matplotlib Data Visualization in Python

Suggested Courses

  • Complete Python Developer: Zero to Mastery.
  • Automate the boring stuff.
  • Python and Django Full Stack Web Developer Bootcamp.
  • Artificial Intelligence and Machine Learning E-Degree.
  • Complete Python & Python OOP.

Subscribe to our newsletter!

Great Deals

Ads
  • Health and Beauty
  • Deals on Electronics
  • Toys and Games
  • Sports and Outdoors
  • Pet Supplies
  • Shoes
  • Movies and TV

Categories

  • Algorithms (8)
  • Artificial Intelligence AI (3)
  • Basic Programs (25)
  • Books (1)
  • Data Structures (10)
  • Databases (1)
  • Dictionaries (1)
  • Files Handling (1)
  • Letter Patterns (26)
  • Lists (7)
  • Machine Learning (3)
  • Math Programs (6)
  • Pattern Programming (31)
  • Promoted (1)
  • Python for Automation (1)
  • Python for Data Science (6)
  • Python for Ethical Hacking (2)
  • Python For Finance (4)
  • Python GUI (5)
  • Python Libraries (6)
  • Python OOP (1)
  • Python Resources (3)
  • Python Tips and Tricks (10)
  • Searching Algorithms (2)
  • Sets (1)
  • Sorting Algorithms (6)
  • Tuples (1)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.