/* ArrayInsertSort.hpp */
#ifndef _ARRAYINSERTSORT_HPP_
#define _ARRAYINSERTSORT_HPP_
template<typename T>
bool InsertSort(T *pInput, int nLen)
{
int i = 0;
int j = 0;
T tTemp;
if(!pInput)
{
return false;
}
for(i=1; i<nLen; i++)
{
tTemp = pInput[i];
for(j=i-1; (j>=0)&&(pInput[j]>tTemp); j--)
{
pInput[j+1] = pInput[j];
}
pInput[j+1] = tTemp;
}
return true;
}
#endif
/* InsertSort.cpp */
#include "ArrayInsertSort.hpp"
#include <iostream>
using namespace std;
int main()
{
int i = 0;
int a[10] = {1,4,7,2,5,8,3,6,9,0};
double b[10] = {1.1,4.4,7.7,2.2,5,8.8,3,6,9.9,0};
if(InsertSort<int>(a,10) == false)
{
cout<<"排序失败"<<endl;
}
for(i=0; i<10; i++)
{
cout<<a[i]<<'\t';
}
cout<<endl;
if(InsertSort<double>(b,10) == false)
{
cout<<"排序失败"<<endl;
}
for(i=0; i<10; i++)
{
cout<<b[i]<<'\t';
}
cout<<endl;
return 0;
}