【发布时间】:2016-03-18 01:18:22
【问题描述】:
这里我有两种插入排序算法。我很难找出这两种插入排序形式的大 O。我有一个迭代形式和一个递归形式。我说迭代形式是 n^2 而递归形式是 n^2 是不是错了。如果我错了,它们是什么,为什么?你是怎么得出这个答案的?
public void iterativeSort(int[] list) {
start = System.currentTimeMillis();
for (int i = 1; i < list.length; i++) {
count++;
int temp = list[i];
int j;
for (j = i - 1; j >= 0 && temp < list[j]; j--) {
list[j + 1] = list[j];
}
list[j + 1] = temp;
finish += System.currentTimeMillis() - start;
}
}
public static void recursiveSort(int array[], int n, int j) {
finish += System.currentTimeMillis() - start;
start = System.currentTimeMillis();
if (j < n) {
int i;
count++;
int temp = array[j];
for (i = j; i > 0 && array[i - 1] > temp; i--) {
array[i] = array[i - 1];
}
array[i] = temp;
recursiveSort(array, n, j + 1);
}
}
【问题讨论】:
-
相关的,也许是骗子:stackoverflow.com/questions/3255/…
标签: java algorithm sorting recursion insertion-sort