谁能告诉我这个问题的算法?Q..我们可以将插入排序表示为递归过程,如下所示。为了对 A[1..n] 进行排序,我们递归地对 A[1..n-1] 进行排序,然后将 A[n] 插入到排序后的数组 A[1..n-1] 中。为这个递归版本的插入排序的运行时间写一个递归。
问问题
65 次
2 回答
0
public static void RecursiveInsertionSort(int[] array, int number) {
if (number >= 1)
return;
RecursiveInsertionSort(array, number - 1);
int currentnumber = array[number];
int i;
for (i = number - 1; i >= 0;) {
if (array[i] > currentnumber) {
array[i + 1] = array[i];
i--;
} else {
break;
}
}
array[i + 1] = currentnumber;
}
于 2016-07-13T17:33:35.750 回答
0
这个想法是从索引 1 到 n-1 递归地对数组进行排序,然后在适当的位置插入第 n 个元素。
算法:
insertion_sort(Arr, n):
if(n <= 1)
return
insertion_sort(Arr, n-1)
temp = Arr[n]
for (i = n; i > 0; i--):
if(Arr[i] > temp):
Arr[i+1] = Arr[i]
else:
break
Arr[i+1] = temp
于 2016-07-13T15:05:05.800 回答