繁体   English   中英

最佳情况时间复杂度检查数组是否未排序

[英]Best case time Complexity to check if the array is unsorted

我试图在检查给定数组是否未排序的同时找出最佳情况下的时间复杂度。

我认为,这是检查数组是否已排序的最快方法,对此的时间复杂度应为O(n)。

for (i = 0; i < a.length-1; i++) { 
  if (a[i] < a[i + 1]) {
    return true;
  } else {
    return false;
  }
}

还是我错了?

是的,这需要O(n) ,并且它要快得多


此外,您需要更改此设置:

for (i = 0; i < a.length; i++)

对此:

for (i = 0; i < a.length - 1; i++)

因为您访问a[i + 1并且您不想超出范围。 此外,应该交换您的return语句。

用于检查数组是否未排序的算法的平均和最坏情况复杂度为O(N) 但是最好的情况O(1)

最好的情况是当数组的前两个元素出现故障时。 这是在第一次循环迭代中检测到的,并且与N无关,花费恒定的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM