我对 BubbleSort 算法做了一些测试。我首先输入排序数组,然后是反向排序数组,然后是随机排序数组。我为 10000、100000 和 1000000 输入大小运行代码
以下是 1000000 输入大小的结果:
Sorted array: Actual running time = 304618 ms.
Reversely sorted array: Actual running time = 742047 ms.
Randomly sorted array: Actual running time = 1375477 ms.
代码 :
void BubbleSort (int A[], int size)
{
int i, j;
for (i=0; i<n-1; i++)
for (j=n-1; j>i; j--)
if (A[j]<A[j-1])
swap (A[j], A[j-1]);
}
为什么随机排序的数据比反向排序的数据花费更多时间???