我正在生成 100,000 个随机数并传递给排序函数。这些数字是随机的,这意味着对数组进行排序所花费的时间应该大于最好情况并小于最坏情况。(如果我错了,请原谅我,仍在学习时间复杂度)。花了25秒。
然后,我再次将相同的排序数组传递给排序函数,花费了近 0 秒。
然后,我反转数组,因此它应该进行最大次数的迭代(交换),因此平均时间复杂度应该超过 25 秒。然而,只需要8秒。
public class BubbleSort {
private static void sort(int arr[]) {
int n = arr.length;
int temp = 0;
boolean sorted = true;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j+1]) {
sorted = false;
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if(sorted) {
break;
}
}
} …Run Code Online (Sandbox Code Playgroud)