mirror of
https://github.com/TheAlgorithms/C
synced 2024-11-25 06:49:36 +03:00
Update InsertionSort.c
This commit is contained in:
parent
98005e3fde
commit
ea50acb609
@ -2,28 +2,34 @@
|
||||
#incude <stdlib.h>
|
||||
#define MAX 20
|
||||
|
||||
|
||||
//i and j act as counters
|
||||
//arraySort is the array that is to be sorted
|
||||
//elmtToInsert will be the element that we will be trying to move to its correct index in the current iteration
|
||||
|
||||
int main()
|
||||
{
|
||||
int i, elmtToInsert , j , arraySort[MAX] = {0};
|
||||
|
||||
for(i = 1 ; i < MAX ; i++)
|
||||
{
|
||||
elmtToInsert = arraySort[i];
|
||||
j = i - 1 ;
|
||||
for(i = 1 ; i < MAX ; i++) //This array is being sorted in the ascending order.
|
||||
{
|
||||
elmtToInsert = arraySort[i]; //Pick up the ith indexed element of the array. It will be the elmtToInsert.
|
||||
j = i - 1 ;
|
||||
|
||||
while( j >= 0 && elmtToInsert < arraySort[j])
|
||||
{
|
||||
arraySort[j+1] = arraySort[j];
|
||||
j--;
|
||||
}
|
||||
while(j >= 0 && elmtToInsert < arraySort[j]) /*compare it with each (i-1)th, (i-2)th... max 0th element, till the correct
|
||||
position of the elmtToInsert, where it is finally greater than the element just
|
||||
before it, is found */
|
||||
{
|
||||
// You'll enter the loop if the elmtToInsert is less than the element just before it.
|
||||
|
||||
arraySort[j+1] = arraySort[j]; /*shift the current element one place forward to create room for insertion of the
|
||||
elmtToInsert when the correct position is found */
|
||||
j--;
|
||||
}
|
||||
//when we exit the loop, j+1 will be the index of the correct position of the elmtToInsert
|
||||
|
||||
arraySort[j+1] = elmtToInsert ;
|
||||
arraySort[j+1] = elmtToInsert ; //'insert' the elmtToInsert into its correct position
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user