//插入排序的迭代实现,小的在前(插入排序要后移的...忘记了)
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;
}
}
插入排序的迭代与递归的实现方式
C++实现插入排序:迭代与递归版本
最新推荐文章于 2023-08-16 17:25:09 发布
该文提供了两种C++实现插入排序的方法,一是迭代方式,二是递归方式。迭代实现中,通过比较和移动元素将较小的值往前插入。递归实现则先对子数组进行排序,然后将最后一个元素插入到已排序的部分。
443

被折叠的 条评论
为什么被折叠?



