Insertion Sort

 Insertion Sort

Insertion sort is the simple sorting algorithm which is commonly used in the daily lives while ordering a deck of cards. In this algorithm, we insert each element onto its proper place in the sorted array. This is less efficient than the other sort algorithms like quick sort, merge sort, etc.

Technique

Consider an array A whose elements are to be sorted. Initially, A[0] is the only element on the sorted set. In pass 1, A[1] is placed at its proper index in the array.

In pass 2, A[2] is placed at its proper index in the array. Likewise, in pass n-1, A[n-1] is placed at its proper index into the array.

To insert an element A[k] to its proper index, we must compare it with all other elements i.e. A[k-1], A[k-2], and so on until we find an element A[j] such that, A[j]<=A[k].

All the elements from A[k-1] to A[j] need to be shifted and A[k] will be moved to A[j+1].

Algorithm

  • Step 1: Repeat Steps 2 to 5 for K = 1 to N-1

  • Step 2: SET TEMP = ARR[K]

  • Step 3: SET J = K - 1

  • Step 4: Repeat while TEMP <=ARR[J]
    SET ARR[J + 1] = ARR[J]
    SET J = J - 1
    [END OF INNER LOOP]

  • Step 5: SET ARR[J + 1] = TEMP
    [END OF LOOP]

  • Step 6: EXIT

Example

Let's consider an array with values {5, 1, 6, 2, 4, 3}

Below, we have a pictorial representation of how bubble sort will sort the given array.

So as we can see in the representation above, after the first iteration, 6 is placed at the last index, which is the correct position for it.

 

 

C Program

#include<stdio.h>  

void main ()  

{  

    int i,j, k,temp;  

    int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};   

    printf("\nprinting sorted elements...\n");  

    for(k=1; k<10; k++)   

    {  

        temp = a[k];  

        j= k-1;  

        while(j>=0 && temp <= a[j])  

        {  

            a[j+1] = a[j];   

            j = j-1;  

        }  

        a[j+1] = temp;  

    }  

    for(i=0;i<10;i++)  

    {  

        printf("\n%d\n",a[i]);  

    }  

}  


C++ Program

#include<iostream>  

using namespace std;  

int main ()  

{  

    int i,j, k,temp;  

    int a[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};   

    cout<<"\nprinting sorted elements...\n";  

    for(k=1; k<10; k++)   

    {  

        temp = a[k];  

        j= k-1;  

        while(j>=0 && temp <= a[j])  

        {  

            a[j+1] = a[j];   

            j = j-1;  

        }  

        a[j+1] = temp;  

    }  

    for(i=0;i<10;i++)  

    {  

        cout <<a[i]<<"\n";  

    }  

}  


Output:

printing sorted elements...

7

9

10

12

23

23

34

44

78

101


Comments

Popular posts from this blog

Huffman coding || Huffman coding with example || Huffman coding method || Huffman coding in c/c++ ||Huffman coding programe in c/c++/data structure /java || what is Huffman coding || Huffman complete,

Ada important question bank

Unix assignment question

Graphs in data structure, it's algorithm

Java question bank

M-way Trees

Data structure question bank

B Tree

Radix Sort

csa unit 01 part 01 basic of computers notes pdf