insertion sort part 1 hackerrank solution
#include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <assert.h> void print(int ar_size, int *ar) { for (int i = 0; i< ar_size; i++) { printf("%d ", ar[i]); } printf("\n"); } void insertionSort(int ar_size, int * ar) { int small, sorted = 1, position; //finding the small value for (int i = 0; i< ar_size; i++) { if (ar[i] > ar[i+1]) { small = ar[i+1]; position = i; break; } } //sort the array and print while (sorted != 0) { ar[position + 1] = ar[position]; print(ar_size, ar); if (small < ar[position - 1]) { position--; continue; } ar[position] = small; print(ar_size, ar); sorted = 0; } } int main(void) { int _ar_size; scanf("%d", &_ar_size); int _ar[_ar_size], _ar_i; for(_ar_i = 0; _ar_i < _ar_size; _ar_i++) { scanf("%d", &_ar[_ar_i]); } insertionSort(_ar_size, _ar); return 0; }