Skip to content

This is source code of performing bubble, insertion, selection and merge sorting through Python.

Notifications You must be signed in to change notification settings

hsuhas154/SortingAlgorithms

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Merge Sort

This is Merge Sort Python Program.

About :

Merge Sort is a Divide &Conquer Alogrithm.
Merge Sort is the best type of sorting. 
It divides input array in two halves,calls itself for the two halves.
the merge(arr,l,m,r) is key process that assumes that arr{i....m} and arr{m+1...r}
are sorted and merge the two sorted is sub arrays into one.
 

What do you mean by " Divide and Conquer approach"?

A Divide-and-conquer Algorithm works by recursively breaking down a problem into two or more 
sub-problems of the same or related type, until these become simple enough to be solved directly. 

The solutions to the sub-problems are then combined to give a solution to the original problem.

The array is split in half and the process is repeated with each half until each half is of size 1 or 0. 

The array of size 1 is trivially sorted.

Now the two sorted arrays are combined into one big array. And this is continued until all the elements are combined and the array is sorted. 

Time complexity

The algorithm works in O(n.logn). This is because the list is being split in log(n) calls and the merging process takes linear time in each call.

Auxiliary Space: O(n)

Algorithmic Paradigm: Divide and Conquer

Sorting In Place: No in a typical implementation

Stable: Yes

Applications :

1) Merge Sort is useful for sorting linked lists in O(nLogn) time.
2)Inversion Count Problem
3)Used in External Sorting

Pseudocode :

MergeSort(arr[], l,  r)
If r > l
     1. Find the middle point to divide the array into two halves:  
             middle m = (l+r)/2
     2. Call mergeSort for first half:   
             Call mergeSort(arr, l, m)
     3. Call mergeSort for second half:
             Call mergeSort(arr, m+1, r)
     4. Merge the two halves sorted in step 2 and 3:
             Call merge(arr, l, m, r)

About

This is source code of performing bubble, insertion, selection and merge sorting through Python.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%