//递归式的insert_sort
#include<iostream>
#include<string>
using namespace std;
void insert(int Array[],int _size_t,int value)
{
while(Array[_size_t] > value && _size_t >= 0)
{
Array[_size_t+1] = Array[_size_t];
--_size_t;
}
Array[_size_t+1]=value;
}
void insert_sort(int Array[],int _size_t)
{
if(_size_t > 0)
{
insert_sort(Array,_size_t-1);
insert(Array,_size_t-1,Array[_size_t]);
}
else
return;
}
void print(int Array[],int _size_t)
{
for(int _t = 0; _t <= _size_t;++_t)
cout<<Array[_t]<<" "<<endl;
}
int main()
{
int Array[10]={123,123,3245,324,45,6456,345,34,345,234};
print(Array,9);
insert_sort(Array,9);
cout<<endl;
cout<<endl;
print(Array,9);
string str;
cin>>str;
return 0;
}</span>
这是是插入排序的递归版
下面在写一个一般的插入排序
void insert_sort(int Array[],int _size_t)
{
for(int i =2; i < _size_t;++i)
{
int j =i-1;
int key = Array[j];
while(Array[j]>Array[i]&&j>0)
{
Array[j+1]=Array[j];
--j;
}
Array[j+1] =key ;
}
}