这里我有两个插入排序算法。我无法找到这两种插入排序的大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);
}
}
相关,也许是一个骗局:http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it –