递归版
void insertion_sort(int arr[], int n)
{
if(n < 2) return;
insertion_sort(arr, n - 1);
for(int i = 0; i != n - 1; i++)
{
if(arr[i] > arr[n - 1])
{
for(int j = i; j != n - 1; j++)
{
int t = arr[n - 1];
arr[n - 1] = arr[j];
arr[j] = t;
}
break;
}
}
}
非递归版
void InsertionSort(int arr[], int n)
{
int i, j, t;
for(i = 1; i < n; i++)
{
t = arr[i];
for(j = i; j > 0 && arr[j - 1] > t; j--)
arr[j] = arr[j - 1];
arr[j] = t;
}
}