How to implement insertion sort in C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
  
#define SIZE 6
 
void print_array(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
}
 
void insertion_sort(int arr[], int size) {
    int j, tmp;
      
    for (int i = 1 ; i < size; i++) { 
        j = i;
       
        while (j > 0 && arr[j] < arr[j - 1]) {
            tmp = arr[j];
            arr[j] = arr[j - 1];
            arr[j - 1] = tmp;
            j--;
        }
    }
}
  
 
int main(void)
{
    int arr[SIZE], i;
    int size = sizeof(arr) / sizeof(arr[0]);
   
    srand(time(NULL));
     
    for (i = 0; i < size; i++) {
         arr[i] = rand() % 100 + 1;
    }
     
    print_array(arr, size);
     
    printf("\n");
      
    insertion_sort(arr, size);
      
    printf("\nafter insertion_sort:\n\n");
    print_array(arr, size);
      
    return 0;
}
  
 
 
  
/*
run:
  
84 79 27 72 48 10 
 
after insertion_sort:
 
10 27 48 72 79 84 
 
*/


answered Sep 14, 2014 by avibootz
edited Feb 23, 2024 by avibootz

Related questions

1 answer 227 views
227 views asked Feb 23, 2024 by avibootz
2 answers 274 views
1 answer 236 views
236 views asked Jun 1, 2019 by avibootz
1 answer 295 views
295 views asked May 12, 2018 by avibootz
...