簡體   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