这个排序不复杂,把排序的过程弄清楚就好啦
#include<iostream>
using namespace std;
template<class T>
T* insertion_sort(T arr[],int len)
{
T key;
//外层循环
for(int i=1;i<len;i++)
{
int k=i;
key=arr[i];
//确定一个元素的位置
while(key<=arr[k-1]&&k>0)
{
arr[k]=arr[k-1];
k–;
}
arr[k]=key;
}
return arr;
}
//测试
void main()
{
double arr[]={3.4,4.5,7.6,2.1,8.8,13.5,63.4,0.3,5.5};
int len=sizeof(arr)/sizeof(double);
insertion_sort(arr,len);
for(int i=0;i<len;i++)
cout<<arr[i]<<endl;
}