#ifndef _BUBBLESORT_H_//bubblesort.h
#define _BUBBLESORT_H_
#define MAX_SIZE 100
#include <iostream>
using namespace std;
//template<class ElemType>
template<class ElemType>
class DataList
{
private:
ElemType data[MAX_SIZE];
int size;
void Swap(const int mak1,const int mark2);
public:
DataList(int sz=6):size(sz){}
~DataList(){}
void SelectSort();
void Input();
void Show();
};
template<class ElemType>
void DataList<ElemType>::Swap(const int mark1,const int mark2)//注意DataList<ElemType>
{
ElemType temp;
temp=data[mark1];
data[mark1]=data[mark2];
data[mark2]=temp;
}
template<class ElemType>
void DataList<ElemType>::SelectSort()
{
for(int i=0;i<size-1;i++)
{
int currSmallPos=i;
for(int j=i+1;j<size;j++)
{
if(data[j]<data[currSmallPos])
{
currSmallPos=j;
}
}
if(currSmallPos!=i)
Swap(i,currSmallPos);
}
}
template<class ElemType>
void DataList<ElemType>::Input()
{
cout<<"the number you wanted to input:";
cin>>size;
for(int i=0;i<size;i++)
{
cout<<"input the number:"<<i+1<< "of data:";
cin>>data[i];
}
}
template<class ElemType>
void DataList<ElemType>::Show()
{
cout<<"element:";
for(int i=0;i<size;i++)
cout<<data[i]<<" ";
cout<<endl;
cout<<"the number of element:"<<size<<endl;
}
#endif
#include <iostream>//main.cpp
#include "bubblesort.h"
#include <stdlib.h>
const int SIZE=6;
using namespace std;
int main(void)
{
DataList<int> List(SIZE);
List.Input();
cout<<"before the sort:";
List.Show();
cout<<"after the sort:";
List.SelectSort();
List.Show();
system("PAUSE");
return 0;
}