Data Structure and Algorithms Insertion Sort




Data Structure and Algorithms Insertion Sort


 

This is an in-place comparison-based sorting algorithm. Here, a sub-list is maintained which is always sorted. For example, the lower part of an array is maintained to be sorted. An element which is to be 'insert'ed in this sorted sub-list, has to find its appropriate place and then it has to be inserted there. Hence the name, insertion sort.

The array is searched sequentially and unsorted items are moved and inserted into the sorted sub-list (in the same array). This algorithm is not suitable for large data sets as its average and worst case complexity are of Ο(n2), where n is the number of items.

How Insertion Sort Works?

We take an unsorted array for our example.

Data Structure and Algorithms Insertion Sort

Insertion sort compares the first two elements.

Data Structure and Algorithms Insertion Sort

It finds that both 14 and 33 are already in ascending order. For now, 14 is in sorted sub-list.

Data Structure and Algorithms Insertion Sort

Insertion sort moves ahead and compares 33 with 27.

Data Structure and Algorithms Insertion Sort

And finds that 33 is not in the correct position.

Data Structure and Algorithms Insertion Sort

It swaps 33 with 27. It also checks with all the elements of sorted sub-list. Here we see that the sorted sub-list has only one element 14, and 27 is greater than 14. Hence, the sorted sub-list remains sorted after swapping.

Data Structure and Algorithms Insertion Sort

By now we have 14 and 27 in the sorted sub-list. Next, it compares 33 with 10.

Data Structure and Algorithms Insertion Sort

These values are not in a sorted order.

Data Structure and Algorithms Insertion Sort

So we swap them.

Data Structure and Algorithms Insertion Sort

However, swapping makes 27 and 10 unsorted.

Data Structure and Algorithms Insertion Sort

Hence, we swap them too.

Data Structure and Algorithms Insertion Sort

Again we find 14 and 10 in an unsorted order.

Data Structure and Algorithms Insertion Sort

We swap them again. By the end of third iteration, we have a sorted sub-list of 4 items.

Data Structure and Algorithms Insertion Sort

This process goes on until all the unsorted values are covered in a sorted sub-list. Now we shall see some programming aspects of insertion sort.

Algorithm

Now we have a bigger picture of how this sorting technique works, so we can derive simple steps by which we can achieve insertion sort.

Step 1 − If it is the first element, it is already sorted. return 1;
Step 2 − Pick next element
Step 3 − Compare with all elements in the sorted sub-list
Step 4 − Shift all the elements in the sorted sub-list that is greater than the 
         value to be sorted
Step 5 − Insert the value
Step 6 − Repeat until list is sorted

Pseudocode

procedure insertionSort( A : array of items )
   int holePosition
   int valueToInsert
	
   for i = 1 to length(A) inclusive do:
	
      /* select value to be inserted */
      valueToInsert = A[i]
      holePosition = i
      
      /*locate hole position for the element to be inserted */
		
      while holePosition > 0 and A[holePosition-1] > valueToInsert do:
         A[holePosition] = A[holePosition-1]
         holePosition = holePosition -1
      end while
		
      /* insert the number at hole position */
      A[holePosition] = valueToInsert
      
   end for
	
end procedure

To know about insertion sort implementation in C programming language, please click here.



Frequently Asked Questions

+
Ans: Data Structure - Bubble Sort Algorithm view more..
+
Ans: Data Structure - Sorting Techniques view more..
+
Ans: Data Structure and Algorithms - Hash Table view more..
+
Ans: Data Structure and Algorithms Insertion Sort view more..
+
Ans: Data Structure and Algorithms Selection Sort view more..
+
Ans: Data Structures - Merge Sort Algorithm view more..
+
Ans: Data Structure and Algorithms - Shell Sort view more..
+
Ans: Data Structure and Algorithms - Quick Sort view more..
+
Ans: Data Structure - Depth First Traversal view more..
+
Ans: Data Structure - Breadth First Traversal view more..
+
Ans: Data Structure and Algorithms - Tree view more..
+
Ans: Data Structure & Algorithms - Tree Traversal view more..
+
Ans: Data Structure - Binary Search Tree view more..
+
Ans: Data Structure and Algorithms - AVL Trees view more..
+
Ans: Data Structure and Algorithms - Red Black Trees view more..
+
Ans: Data Structure and Algorithms - B Trees view more..
+
Ans: Data Structure and Algorithms - B+ Trees view more..
+
Ans: Data Structure and Algorithms - Splay Trees view more..




Rating - NAN/5
453 views

Advertisements