1
A
回答
6
恆定時間僅表示無論函數的輸入大小如何,成本始終保持不變。
舉個簡單的例子,假設你有一個叫deleteHead
功能,這在鏈接的列表中給出一個節點時,返回下一個:
function deleteHead(list) {
if(list == null)
return null;
return list.next;
}
不管你把這個列表的大小函數(十個項目,或十億個),它總是隻做一件事使它成爲一個恆定時間算法O(1)。
通過比較的線性算法,將不得不檢查全部鏈表中的N個元素來執行一些計算,這意味着處理更大的列表需要更多的時間。通常,如果不保持結束指針,則將元素添加到鏈表的末尾是線性時間。
2
當改變爲一個常數時間算法的輸入大小,運行時不會增長。
例如,線性算法,當改變輸入大小時,運行時間增長(線性)。
對於更差的運行時間,比如說指數級,運行時在改變輸入大小時呈指數增長。
2
對於恆定的時間的算法,執行的時間不依賴於輸入的大小的。對於線性時間,執行時間隨輸入大小線性增加。
3
這是在大多數基本的計算機科學書籍中找到的。
它只是簡單地描述了算法的輸入長度或對象大小(取決於應用程序)和操作所花費的時間之間的依賴關係。例如。使用列表時,無論列表的大小如何,它都需要執行相同的步驟來在前面/後面添加一個 對象。
需要線性時間來查找列表中的特定項目(在最差和平均的情況下) - 如果您的列表長度是兩倍,則必須查看兩倍的項目才能找到您的項目看起來
相關問題
- 1. 是什麼意思:是什麼意思?
- 2. 編譯時間'const'是什麼意思?
- 3. pgadmin中的時間是什麼意思?
- 4. IIS時間是什麼意思?
- 5. %{}是什麼意思?
- 6. '#'是什麼意思?
- 7. 「?」是什麼意思?
- 8. #{...}是什麼意思?
- 9. || =是什麼意思?
- 10. @是什麼意思
- 11. $$ $$是什麼意思?
- 12. `/ * @`是什麼意思?
- 13. 「=」是什麼意思
- 14. + =是什麼意思?
- 15. {..} [..]是什麼意思?
- 16. 什麼是:!:意思?
- 17. @ []是什麼意思?
- 18. 什麼是「||」意思?
- 19. /([^.]*)\.(.*)/是什麼意思?
- 20. &**是什麼意思?
- 21. @(...)是什麼意思?
- 22. &@是什麼意思?
- 23. 「\\。\」,「\ ?? \」,「\\?\」,「\\」是什麼意思?
- 24. &=是什麼意思?
- 25. {%=%}是什麼意思?
- 26. 是什麼意思?
- 27. %%是什麼意思?
- 28. {}是什麼意思?
- 29. 「*&」是什麼意思?
- 30. 「_」是什麼意思?
隨着輸入數據量的增加,時間成本不會增長。 –