为什么这个算法需要O(nlgn)时间?

时间:2016-01-31 04:01:37

标签: algorithm

在第5章,5.3随机算法中,

    @Override
public boolean onLongClick(View view) {
    Log.i(YourTAG,getLayoutPosition());

    return true;
}

为什么算法PERMUTE-BY-SORTING需要O(nlgn)时间?

1 个答案:

答案 0 :(得分:0)

一切都很简单。

  1. n = A.length需要O(1)
  2. let P[1..n] be a new array创建一个长度为n的新数组需要O(n)
  3. for i = 1 to n {P[i] = RANDOM(1, n^3)} n次你分配一个从1到n ^ 3的随机数。获取随机数为O(1),因此总共O(n)
  4. sort A, using P as sort keys需要O(nlogn)
  5. 总结你得到:O(1) + O(n) + O(n) + O(nlogn) O(nlogn)