插入排序的递归版本
int insertsort (int *a ,int first,int last)
{
for (int i = first +1 ; i < last; i++)
{
int key = a[i];
int j = i-1;
while (j >= first && a[j] > key)
{
a[j+1] = a[j];
j--;
}
a[j+1] = key;
}
return 0;
}
int recursive (int *a,int fist,int last)
{
if (last >fist)
{
recursive(a, fist, last-1);
}
insertsort(a,fist, last);
return 0;
}
int main(int argc, const char * argv[])
{
int a[7] = {5,2,1,4,3,9,0};
for (int i = 0;i < 7;i++)
{
cout << a[i];
}
cout << endl;
recursive (a,0,7);
for (int i = 0;i < 7;i++){ cout << a[i];}return 0;}<br />