#include using namespace std; void swap(int* array, int position1, int position2) { int temp = array[position1]; array[position1] = array[position2]; array[position2] = temp; } void insertionSort(int* array, int size) { int k; int temp; int position; // first item already "sorted" // start with second (k = 1 instead of 0) for (k = 1; k < size; k++) { temp = array[k]; position = k; // compare item against already sorted front items, // moving past those bigger than you until hit front // of array or hit one smaller than you while ((position > 0) && (array[position-1] > temp)) { // push them back as you move forwards array[position] = array[position-1]; position = position -1; } // insert yourself at the right spot array[position] = temp; } } int main(int argc, char* argv[]) { int i; int size = 5; int* data = new int[5]; data[0] = 9; data[1] = 8; data[2] = 7; data[3] = 6; data[4] = 5; //data[0] = 2; data[1] = 4; data[2] = 3; data[3] = 5; data[4] = 2; cout << "Unsorted data: " << endl; for (i = 0; i < size; i++) { cout << data[i] << endl; } insertionSort(data,size); cout << "Sorted data: " << endl; for (i = 0; i < size; i++) { cout << data[i] << endl; } }