33,311
社区成员
发帖
与我相关
我的任务
分享
void RInsertionSort (int *list, int n)
{
if (n > 0)
{
RInsertionSort(list, n-1); //对前n-1个元素进行排序
//把第n个元素插入到前面已排序的[1..n-1]的序列中正确的位置
int key = list[n-1];
int i = n - 2;
if (i >= 0 && list[i] >= key)
{
list[i+1] = list[i];
i--;
}
list[i+1] = key;
}
}
void RInsertionSort (int *list, int n)
{
if (n > 0)
{
RInsertionSort(list, n-1); //对前n-1个元素进行排序
//把第n个元素插入到前面已排序的[1..n-1]的序列中正确的位置
int key = list[n-1];
int i = n - 2;
while (i >= 0 && list[i] >= key)//if改成while,谢谢
{
list[i+1] = list[i];
i--;
}
list[i+1] = key;
}
}