// Sorting arrays -- Insertion Sort

#include <iostream>
#include <iomanip>		//For setting the width

using namespace std;

void print_array(int A[], int size) {
	int i;
	for (i=0;i<size;i++) {
		cout.width(4);
		cout << A[i];
	}
	cout << endl;
} //end print_array

void InsertSort(int Array[], int NumItems)
{

	int InsertItem;
	int i;
	int temp;

	for (InsertItem=1; InsertItem<NumItems; InsertItem++)
	{
		temp=Array[InsertItem];
		for(i=InsertItem-1; i>=0 && temp<Array[i]; i--) {
			Array[i+1] = Array[i]; //Move values to right
		}
		Array[i+1] = temp;  // Place "insert" value in right place.
	} //end for(InsertItem)

} //end InsertSort()

void main() {

	int X[] = {34,12,32,51,11,7};

	print_array(X, 6);

	InsertSort(X, 6);

	print_array(X, 6);
} //end main()