根据我的计算:
- 快速排序的成本 = n + (n/2 + n/2) + (n/4 + n/4 + n/4 + n/4) + ... = n * log(n) = log(nn) - 堆排序的成本 = sum [log(i)] for i = n, n-1, n-2, ..., 1 = log(n!)
为什么说快速排序具有更好的常数因子,因此平均而言快速排序比堆排序更好?难道不是 log(nn) > log(n!) 吗?
- 快速排序的成本 = n + (n/2 + n/2) + (n/4 + n/4 + n/4 + n/4) + ... = n * log(n) = log(nn) - 堆排序的成本 = sum [log(i)] for i = n, n-1, n-2, ..., 1 = log(n!)
为什么说快速排序具有更好的常数因子,因此平均而言快速排序比堆排序更好?难道不是 log(nn) > log(n!) 吗?