//插入排序的迭代实现,小的在前(插入排序要后移的...忘记了)
template<typename T>
void insert_sort(T *data,int data_len)
{
for(int i=1;i<data_len;i++)
{
int j=i-1;
T temp = data[i];
while(j>=0)
{
if(data[j]>temp)
{
data[j+1] = data[j];
j--;
}
else
{
break; //nimade,好像是break if啊
}
}
data[j+1] = temp;
for(int i=0;i<data_len;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
}
}
//插入排序的递归实现,小的在前
template<typename T>
void insert_sort_recurrence(T *data, int last_index) //last_index是数组长度减一
{
if(last_index==0)
{
return;
}
else
{
insert_sort_recurrence(data,last_index-1);
T temp = data[last_index];
int i;
for(i=last_index-1;i>=0;i--)
{
if(data[i]>temp)
{
data[i+1] = data[i];
}
else
{
break;
}
}
data[i+1] = temp;
}
}
08-29
2249
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)