From 8077893b16bb633d9680f05d59b991587ef7ec0f Mon Sep 17 00:00:00 2001 From: AnishKr91620 <145275076+AnishKr91620@users.noreply.github.com> Date: Wed, 11 Oct 2023 22:30:02 +0530 Subject: [PATCH] Create insertion-sort To sort an array of size N in ascending order iterate over the array and compare the current element (key) to its predecessor, if the key element is smaller than its predecessor, compare it to the elements before. Move the greater elements one position up to make space for the swapped element. --- insertion-sort | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 insertion-sort diff --git a/insertion-sort b/insertion-sort new file mode 100644 index 0000000..a77bd6f --- /dev/null +++ b/insertion-sort @@ -0,0 +1,48 @@ +// C++ program for insertion sort + +#include +using namespace std; + +// Function to sort an array using +// insertion sort +void insertionSort(int arr[], int n) +{ + int i, key, j; + for (i = 1; i < n; i++) { + key = arr[i]; + j = i - 1; + + // Move elements of arr[0..i-1], + // that are greater than key, + // to one position ahead of their + // current position + while (j >= 0 && arr[j] > key) { + arr[j + 1] = arr[j]; + j = j - 1; + } + arr[j + 1] = key; + } +} + +// A utility function to print an array +// of size n +void printArray(int arr[], int n) +{ + int i; + for (i = 0; i < n; i++) + cout << arr[i] << " "; + cout << endl; +} + +// Driver code +int main() +{ + int arr[] = { 12, 11, 13, 5, 6 }; + int N = sizeof(arr) / sizeof(arr[0]); + + insertionSort(arr, N); + printArray(arr, N); + + return 0; +} +// This is code is contributed by rathbhupendra