/* Select_sort */
#include <iostream>
using namespace std;
const int Declared_Size=20;
//Create a array
template <class type>
void fillArray(type a[], int size, int & numberUsed)
{
type next;
int index=0;
cin>>next;
while ((next!='n')&&(index<size))
{
a[index]=next;
index++;
cin>>next;
}
numberUsed=index;
}
//template <class T>
void swap(char &a1, char &a2)
{
char temp=a1;
a1=a2;
a2=temp;
}
template <class type>
void select_sort(type a[], int num)
{
for (int i=0;i<num;i++)
{
int lowIndex=i;
for (int j=num-1;j>i;j--)
{
if(a[j]<a[lowIndex]) lowIndex=j;
}
swap(a[i],a[lowIndex]);
}
}
template <class type>
void print_array(type a[], int num)
{
for(int i=0;i<num;i++)
cout<<a[i]<<" ";
cout<<endl;
}
int main()
{
char arr[Declared_Size];
int siz;
cout<<"Create a array: "<<endl;
fillArray(arr, Declared_Size, siz);
print_array(arr, siz);
cout<<"Select_Heap is: "<<endl;
select_sort(arr,siz);
print_array(arr, siz);
cout<<"End of program.\n";
return 0;
}