Skip to main content

Insertion Sort in C Program with Algorithm and Function Code Reducing Techniques

Insertion Sort in C Program with Algorithm and Function Code Reducing Techniques :

Example for Insertion Sorting in C Language Program with Explanations is given below :-
Every repetition of insertion sort removes an element from the input data, inserting it into the correct position in the already-sorted list, until no input elements remain. The choice of which element to remove from the input is arbitrary, and can be made using almost any choice algorithm.
Sorting is typically done in-place. The resulting array after k iterations has the property where the first k + 1 entries are sorted. In each iteration the first remaining entry of the input is removed, inserted into the result at the correct position, thus extending the result:

#include<stdio.h>
#include<conio.h>

void insertion_Sort(int, int []); /* function prototype declaration */

void main()
{
int arr[100] , a , n ;
clrscr();
printf("Enter the number of array elements to be Sorted :");
scanf( "%d" , &n );

printf("\nEnter the array elements :\n");
for( a = 0 ; a < n ; scanf("\n %d",&arr[a]) , a++ ); /* see help below */
insertion_Sort(n,arr); /* function calls here. n means array length and arr means array name its enough while passing array */

printf("\nSorted array is given below :");

for( a = 0 ; a < n ; printf(" \n%d " , arr[a] ) , a++ ) ;

/* use ; to end loop, as it contains one statement inside. if we use printf() out side for() loop as usual, then do not use ; at the end of for() loop */

getch();
}

// main() ends here

void insertion_Sort(int n, int arr[]) /* UDF defines here */
{
int i , temp , j ;
for( i = 1 ; i < n ; i++ )
{
temp = arr[i];
j = i - 1 ;
while( j >= 0 )
{
if( temp <= arr[j] )
{
arr[j+1] = arr[j] ;
arr[j] = temp ;
}
j = j - 1 ;
}

}
}

/* below function is same as above, but the program code has been reduced. if you understand, you can use it instead of above function code :

void insertion_Sort(int n, int arr[])
{
int i , temp , j ;
for( i = 1 ; i < n ; i++ )
for( j = i - 1 , temp = arr[i] ; j >= 0 ; j-- )
if( temp <= arr[j] )
{
arr[j+1] = arr[j] ;
arr[j] = temp ;
}

}
*/

Popular posts from this blog

Swapping of Two Numbers in C or C Program to Swap Two Numbers

Swapping of Two Numbers in C or C Program to Swap Two Numbers or C program to Swap two numbers without using a third variable #include <stdio.h> #include <conio.h>  void main() {    int x, y, temp;    clrscr();    // to clear screen       printf("Enter the value of x and y\n");    scanf("%d%d", &x, &y);    printf("Before Swapping\nx = %d\ny = %d\n",x,y);    temp = x;    x    = y;    y    = temp;    /*       without using temp variable, this can be used    let x=4 and y=5    x = x + y ;   x=x+y => x=4+5 => x=9     y = x - y ;   y=x-y => y=9-5 => y=4  value changed    x = x - y ;   x=x-y => x=9-4 => x=5  value changed      */       printf("After Swapping\nx ...

Find the Greatest Time in C or CPP from two different times.

Find the Greatest Time in C or CPP from two different times. Example Code: #include<iostream.h> #include<conio.h> class time { private: int hh,mm,ss; public: void get() { cout<<"\n enter hh,mm,ss:"; cin>>hh>>mm>>ss; } void show() { cout<<"\n hour:"<<hh<<"\n minute:"<<mm<<"\n second:"<<ss; } time greatest(time x) { if (hh>x.ss) return *this; else if(hh>x.hh) return x; else if(mm>x.mm) return *this; else if(mm<x.mm) return x; else if(ss>x.ss) return *this; else return x; } }; void main() { clrscr(); time t1,t2,t3; cout<<"\n enter time1:"; t1.get(); cout<<"\n enter time2:"; t2.get(); t3=t1.greatest(t2); cout<<"\n greatest time:"; t3.show(); getch(); }

C Code Shortening Techniques or My Logic for Reduced Source Code Writing in C Program Language

C Code Shortening Techniques or My Logic for Reduced Source Code Writing Tips and Tricks in C Program Language :- Role of Semi Colon(;) and Curly Braces({ }) in C Program Perhaps, you might have heard that the for() loop should not end with ";" like if(). But, in fact the ";" is using in C language as a Statement Terminator, so, if we want to terminate for() loop, then we should use ";" at the end of for() loop. [ Header files are to be included as usual, it is not written in the examples ] Question : write a C program to print 1 to 10 numbers using for() loop ? Example 1 : void main() { int i; for ( i = 1 ; i <= 10 ; i++ ) { printf("%d\n",i); } } /* above program, for() loop has one statement outside, so we do not use ";" at the end, because if we put ";" the for() will not take the continuing statement as its own. */ Example 2 : void main() { int i; for ( i = 1 ; i <= 10 ; printf( "%d \n" , i ...