Вот код для вставки сортировки:
int InsertionSort()
{
int max;
int *numarray = 0;
int i,j,k,temp;
printf("\nProgram for Ascending order of Numeric Values using INSERTION SORT");
printf("\n\nEnter the total number of elements: ");
scanf("%d", &max);
numarray = (int*) malloc(sizeof(int) * max);
for(i = 0; i < max; i++)
{
printf("\nEnter [%d] element: ", i + 1);
scanf("%d", &numarray[i]);
}
printf("Before Sorting : ");
for(k = 0; k < max; k++)
printf("%d ", numarray[k])
printf("\n");
for(i = 1; i < max; i++)
{
j = i;
while(j > 0)
{
if(numarray[j-1] > numarray[j])
{
temp = numarray[j - 1];
numarray[j - 1] = numarray[j];
numarray[j] = temp;
j--;
}
else
break;
}
printf("After iteration %d ": ", i);
for(k = 0; k < max; k++)
printf("%d ", numarray[k] );
printf("/*** %d numbers from the begining of the array are input and they are sorted ***/\n", i + 1);
}
printf("\n\nThe numbers in ascending orders are given below:\n\n");
for(i = 0; i < max; i++)
{
printf("Sorted [%d] element: %d\n",i + 1, numarray[i]);
}
free(numarray);
return 0;
}
Вывод будет
Программа для возрастания числовых значений с использованием INSERTION SORT
Введите общее количествоэлементы: 8
Введите [1] элемент: 80
Введите [2] элемент: 60
Введите [3] элемент: 40
Введите [4] элемент: 20
Введите [5] элемент: 10
Введите [6] элемент: 30
Введите [7] элемент: 50
Введите элемент [8]: 70
Числа в порядке возрастания приведены ниже:
Сортированный [1] элемент: 10
Сортированный [2] элемент: 20
Сортированный элемент [3]: 30
Сортированный элемент [4]: 40
Сортированный элемент [5]: 50
Сортированный элемент [6]: 60
Сортированный [7] элемент: 70
Сортированный [8] элемент: 80