diff --git a/Insertion_Sort.c b/Insertion_Sort.c new file mode 100644 index 0000000..1959df3 --- /dev/null +++ b/Insertion_Sort.c @@ -0,0 +1,39 @@ +#include + +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; + } +} + +void printArray(int arr[], int size) { + for (int i = 0; i < size; i++) { + printf("%d ", arr[i]); + } + printf("\n"); +} + +int main() { + int arr[] = {12, 11, 13, 5, 6}; + int n = sizeof(arr) / sizeof(arr[0]); + + printf("Original array:\n"); + printArray(arr, n); + + insertionSort(arr, n); + + printf("Array after Insertion Sort:\n"); + printArray(arr, n); + + return 0; +}