Merge Sort Python

In this post we will look at code on how to perform merge sort in python.
Merge sort python

#Merge sort python
#Merge sort devides and sorts the divided pieces and merges them
#It achoeves the sorting through recursion which means a method calling a method

items = [3, 5, 65, 45, 77, 8, 43, 54, 232, 65, 76, 56, 65]

def merge_sort(dataset):
    if len(dataset) > 1:
        mid = len(dataset) // 2 #split into 2
        left_data = dataset[:mid]
        right_data = dataset[mid:]

        #Break down the array recursively
        merge_sort(left_data)
        merge_sort(right_data)

        #Perform merge sort
        i = 0 #index into left data
        j = 0 #index into right data
        k = 0 #index into merged data

        #while both right and left have data
        while i < len(left_data) and j < len(right_data):
            if left_data[i] < right_data[j]:
                dataset[k] = left_data[i]
                i += 1
            else:
                dataset[k] = right_data[j]
                j += 1
            k += 1


        #if left data set still has values add them
        while i < len(left_data):
            dataset[k] = left_data[i]
            i += 1
            k += 1

        #if right data set still has values add them
        while j < len(right_data):
            dataset[k] = right_data[j]
            j += 1
            k += 1

#unsorted items
print(items)
#sort items
merge_sort(items)
#sorted items
print(items)
---------------------------------------------------------------------------------------
#Output
[3, 5, 65, 45, 77, 8, 43, 54, 232, 65, 76, 56, 65]
[3, 5, 8, 43, 45, 54, 56, 65, 65, 65, 76, 77, 232]

Comments

Popular posts from this blog

How to write to a file in Kotlin

Python Tkinter example

Kotlin - Display Date picker dialog using EditText