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

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 ...

How to create User Defined Functions in C, see example Perfect_Number() function used as UDF in C Program

How to create User Defined Functions in C, see example Perfect_Number() function used as UDF in C Program :- Example : This is a program to find Perfect Numbers upto a limit using User Defined Function(UDF) in C Program Language :- #include<stdio.h> #include<conio.h> int Perfect_Number(int); /* UDF function prototype declaration : int argument and int returns */ main() { int lmt,num; clrscr(); printf("Enter a Limit :"); scanf("%d",&lmt); for(num=5 ; num<=lmt ; num++) { /* function calls here with Actual Parameter num and returns either 1 or 0 and checks */ if(Perfect_Number(num)==1) { printf("\n%d",num); } } getch(); } /* Either the function should be defined out side the main() or it should be in one of the header files included. function definition with a Formal Parameter as n */ int Perfect_Number(int n) { int a,sm; sm=0; for(a=1 ; a<n ; a++) { if(n%a==0) { sm=sm+a; } } if(sm==n) return 1; else ...

Hello World C Program with full explanation.

Hello World C Program with Explanation are given below :- #include<stdio.h> #include <conio.h> void main() { clrscr(); printf("Hello World!"); getch(); } Explanations: - printf() function is defined in the header file stdio.h, so it must be included at top of the program. Like clrscr() and getch() functions are defined in conio.h. To include a Header file, the syntax is #include at the top of the program. C Program to be written in main() function. Then void main() means the main() function returns nothing and it will study later. We use ";" as a statement terminator so clrscr(),printf() and getch() are used ";" but "void main()" doesn't have ";" because it is not terminated there, it follows "{" and "}" . clrscr() function uses for to clear the screen. printf() for print something. getch() uses for to get a character from keyboard and it is used here as a wait command. Save file name as " an...