嘿,大家可以有人解釋我的大o符號嗎?Java中的大O符號
-2
A
回答
1
1-由於陣列元件可以被隨機訪問(無需從一個小區移動到另一個像鏈表),因此可以說基本上陣列[28],這是O(1)
2-比較兩個數組列表可以完成的方式,這將導致一個較低的大O但與排序。
您可以使用mergesort或quicksort O(nlg(n))對每個數組列表進行排序,然後比較O(n)中的兩個排序列表。結果是O(nlgn)。
但是另一種算法(無需排序)將遍歷一個數組(n)中的每個元素。然後檢查元素是否是另一個數組(n)(並標記爲正確處理重複項)。後一種算法是O(n^2)。
3-是的。你必須逐個瀏覽整個列表,直到找到所需的元素。
1
既然你有一個數組,那就意味着連續的內存。這意味着在任何給定索引處的查找都將在一個動作中進行,因爲不需要像在鏈接列表中一樣遍歷。所以它是O(1)。
比較兩個ArrayList對象,沒有排序或排序的A和B是O(n^2),因爲ArrayList A中的每個元素必須與B中的每個元素進行比較。因此,在A中有n個元素, B.這將導致A中的每個元素都需要與B進行n次比較。由於n中有n個元素,即n次比較,O(n^2)。
雖然如果您使用排序算法,它將像排序算法一樣快,例如O(n log n)時間或O(n),具體取決於所使用的排序算法。
搜索未排序數組中的特定目標值的確是O(n)。這是因爲你必須搜索數組中的每個元素來檢查它是否存在。由於列表中有n個元素,這意味着有n個比較。
相關問題
- 1. 總和大O符號的
- 2. 算法的大O符號
- 3. 大O和等號,符號的濫用
- 4. 大O符號證明
- 5. BIG-O /大哦符號
- 6. 大O符號混亂(C++)
- 7. 大O符號幫助
- 8. 大O符號和漸近
- 9. 大O符號,爲什麼
- 10. 大O符號算法
- 11. 簡化大O符號
- 12. 大O符號和遞歸
- 13. 使用大O符號
- 14. 困惑於大O符號
- 15. 大O符號Python函數
- 16. 大O符號 - O(n日誌(N))對O(的log(n^2))
- 17. 指數函數的大O符號
- 18. 大O符號的運行FO在Python
- 19. 大O符號的幫助,迷茫
- 20. 具有絕對值的大O符號?
- 21. 大O符號的數據結構
- 22. 大O符號,不同的意義
- 23. 的大O符號寫作技巧
- 24. 大O符號爲下面的循環
- 25. 大哦符號證明O(2^n)的
- 26. 決定算法的大O符號
- 27. if語句的大O符號?
- 28. 大O符號 - 爲什麼是O(n^2/4)= O(N^2)
- 29. Java - bitCount()的大O?
- 30. 大O符號檢查理解
這些概念不會隨語言而改變。它們是普遍的。所以你的答案在每種語言中都是正確的。 –
你很幸運,好人解決你的功課... – Pigueiras
可能重複[什麼是簡單的英文解釋「大O」符號?](http://stackoverflow.com/questions/487258/what-is-a - 標準英語的解釋 - 中 - 大O表示法) – dorukayhan