Insertion Sort


Algorithm

InsertionSort() Begin Read array size, "size" Declare arr[size] for (i = 0; i < size; i++), do Read element and store in arr[i] End For for (i = 1; i < size; i++), do Set j = i - 1 Set current = arr[i] while (j >= 0 && arr[j] > current), do Set arr[j+1] = arr[j] Decrement j by 1 End While Set arr[j+1] = current End For Display sorted array, arr End

Program

#include <stdio.h> int main() { int size, temp; printf("Enter array size: "); scanf("%d", &size); int arr[size]; printf("Enter array elements: "); for (int i = 0; i < size; i++) scanf("%d", &arr[i]); for (int i = 1; i < size; i++) { int j = i - 1; int current = arr[i]; while (j >= 0 && arr[j] > current) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = current; } printf("Sorted array is: "); for (int i = 0; i < size; i++) printf("%d ", arr[i]); }