没什么可以多说的,直接看代码吧:
#include <stdio.h>
void display(int array[], int size)
{
int i;
for (i = 0; i < size; ++i)
{
printf("%d ", array[i]);
}
printf("\n");
}
void insert_sort(int array[], int size)
{
if (size > 1)
{
insert_sort(array, size - 1);
int temp = array[size - 1];
int i;
for (i = size - 2; i >= 0; --i)
{
if (temp < array[i])
{
array[i + 1] = array[i];
}
else
{
break;
}
}
array[i + 1] = temp;
}
}
int main()
{
int array[] = {4,1,5,2,8};
insert_sort(array, sizeof(array) / sizeof(int));
display(array, sizeof(array) / sizeof(int));
return 0;
}
BTW:我发现我写递归算法的能力不是很强,总是把握不住重点,还得多锻炼才行.