Software & Finance - Monthly Magazine Online

Volume 3 - Issue 7

July 2013

Technology: Insertion Sort in Python


I have given python program to sort the numbers in ascending order using Insertion Sort. We often using sorting algorithm to sort numbers and strings. Also we have many sorting algorithms. Look at the output to understand how algorithm works after each iteration.

This code is tested with Python version 2.6

 

        print "Python Program to sort the numbers using Insertion Sort"
        arrNumbers = []
        i = 0
        j = 0
        k = 0
        n = 0
        a = 0
        sum = 0
        temp = 0
        
        print "Total Numbers:", 
        n = input()
        
        for i in range (0, n):
           print "Enter", i + 1, "Number: ", 
           a = input()
           arrNumbers.append(a)
        
        for i in range (1, n):
           j = i
           while(j > 0):
              if( arrNumbers[j - 1] > arrNumbers[j]):
                 temp = arrNumbers[j]
                 arrNumbers[j] = arrNumbers[j - 1]
                 arrNumbers[j - 1] = temp
                 j -= 1
              else:
                 break
           print "After iteration: ", i
           for k in range (0, n):
              print arrNumbers[k], 
           print "/*** ", i + 1,  "numbers from the begining of the array 
				are input and they are sorted ***/"
        
        print "The sorted array is: ", 
        for i in range (0, n):
           print arrNumbers[i], 
   
        #sample output
        #Python Program to sort the numbers using Insertion Sort
        #Total Numbers: 5
        #Enter 1 Number:  5
        #Enter 2 Number:  4
        #Enter 3 Number:  3
        #Enter 4 Number:  2
        #Enter 5 Number:  1
        #After iteration:  1 
        #4 5 3 2 1 /***  2 numbers from the begining of the array
					 are input and they are sorted ***/
        #After iteration:  2
        #3 4 5 2 1 /***  3 numbers from the begining of the array 
						are input and they are sorted ***/
        #After iteration:  3 
        #2 3 4 5 1 /***  4 numbers from the begining of the array 
						are input and they are sorted ***/
        #After iteration:  4
        #1 2 3 4 5 /***  5 numbers from the begining of the array 
						are input and they are sorted ***/
        #The sorted array is:  1 2 3 4 5