#include <iostream>
template <typename T>
void printArray(T * array, int size, const std::string& space)
{
for (int i = 0; i != size; ++i)
{
if (i != size - 1)
std::cout << array[i] << space;
else
std::cout << array[i];
}
std::cout << std::endl;
}
template <typename T>
void numberSort(T * array, int size)
{
bool bDone = false;
printArray(array, size, "-");
while (!bDone)
{
bDone = true;
for (int i = 0; i != size - 1; ++i)
{
if ( array[i] > array[i + 1] )
{
T tmp = array[i];
array[i] = array[i+1];
array[i+1] = tmp;
bDone = false;
printArray(array, size, "-");
}
}
}
printArray(array, size, "-");
}
int main()
{
int array[] = { 50, 10, 20, 1, 5 }; //Array to sort
int size = sizeof(array)/sizeof(int);
numberSort<int> (array, size);
}