How to implement insertion sort in C++

1 Answer

0 votes
#include <iostream>
#include <ctime>

#define SIZE 6

void print_array(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        std::cout << 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);
     
    std::cout << "\n";
      
    insertion_sort(arr, size);
      
    std::cout << "\nafter insertion_sort:\n\n";
    print_array(arr, size);
}
  
 
 
  
/*
run:
  
4 20 92 57 64 71 

after insertion_sort:

4 20 57 64 71 92 
 
*/

 



answered Feb 23, 2024 by avibootz
edited Feb 23, 2024 by avibootz

Related questions

1 answer 201 views
201 views asked Sep 14, 2014 by avibootz
2 answers 151 views
1 answer 148 views
148 views asked Jun 1, 2019 by avibootz
1 answer 98 views
3 answers 210 views
...