diff --git a/insertionSort.cpp b/insertionSort.cpp new file mode 100644 index 0000000..a1424ec --- /dev/null +++ b/insertionSort.cpp @@ -0,0 +1,39 @@ +// Insertion sort in C++ + +#include +using namespace std; + +// Function to print an array +void printArray(int array[], int size) { + for (int i = 0; i < size; i++) { + cout << array[i] << " "; + } + cout << endl; +} + +void insertionSort(int array[], int size) { + for (int step = 1; step < size; step++) { + int key = array[step]; + int j = step - 1; + + // Compare key with each element on the left of it until an element smaller than + // it is found. + // For descending order, change keyarray[j]. + while (key < array[j] && j >= 0) { + array[j + 1] = array[j]; + --j; + } + array[j + 1] = key; + } +} + +// Driver code +int main() { + int data[] = {9, 5, 1, 4, 3}; + int size = sizeof(data) / sizeof(data[0]); + insertionSort(data, size); + cout << "Sorted array in ascending order:\n"; + printArray(data, size); +} + +//This code is contributed by prasant Kumar