【发布时间】:2012-02-25 10:10:06
【问题描述】:
您好,我正在使用以下通用冒泡排序算法,我想显示时间复杂度。我知道这个算法的最佳/最坏情况是固定的,但我想知道,它可以特定于我的数组吗?
例如,这种排序的最坏情况是O(n^2),这可以特定于我的数组吗?
例如,最坏的情况可能是对 120 个元素中的 100 个进行排序(这就是我所说的特定于我的数组的意思)。
public static <E extends Comparable<? super E>> void bubbleSort(E[] comparable) {
boolean changed = false;
do {
changed = false;
for (int a = 0; a < comparable.length - 1; a++) {
if (comparable[a].compareTo(comparable[a + 1]) > 0) {
E tmp = comparable[a];
comparable[a] = comparable[a + 1];
comparable[a + 1] = tmp;
changed = true;
}
}
} while (changed);
}
【问题讨论】:
-
"它可以特定于我的阵列吗?"对不起。这句话看不懂。
-
我对此表示赞同,因为虽然网上有很多资源,但我知道在学习时间复杂度时我很难掌握一些概念。
标签: java arrays sorting time complexity-theory