时间复杂度nlogn

时间复杂度nlogn怎么算得的啊,不太了解,可以举例子吗,额怎么还要求那么多字,额额。

nlogn常用在二分法,举个例子2的倍数依次相乘


int sum=1;
while(sum<n){
    sum=sum*2;
}

算T(n),利用数学,sum算了多少步到n,2^步数=n,所以步数=logn,时间复杂度为O(nlogn)

算法时间复杂度是根据算法运行循环的次数决定的,我举个例子

for(int i; i < n; i++) {
  // ****
}

上面代码的算法时间复杂度就是O(n),至于O(nlogn),则是类似于这样的算法

for(int i; i < n; i++) {
  // 省略实际的逻辑代码
  while(n) {
    // 省略实际的逻辑代码
  }
}