1
A
回答
0
顯然你的算法是大-θ(日誌(一)),其中一個是你的號碼
但據我瞭解你的問題,你想知道的這取決於你的電話號碼
這真的很難說取決於你位數的量漸近運行時間:
比方說你哈ve是一個n位整數,最高有效位是1.你必須將它除以n次,得到一個小於1的數字。
現在讓我們來看一個只有最小siginficant位爲1的整數所以它等於十進制中的數字1)。你只需要一個部門。
所以,我要說,它會採取平均N/2這使得它大-θ(n)的其中ñ是你的號碼的比特量。最壞的情況也大-θ(N)和最好的情況是在大-θ(1)
注:在分裂了一些由兩個二進制系統與十進制系統中十進制數的劃分效果相似
0
將整數除以二可以通過採用二進制表示法中的數字並移位來有效實現。在最壞的情況下,所有比特的設置必須爲第一個分區移位(n-1)個比特,第二個分步移位(n-2)等等,直到您在最後一次迭代中移位1個比特爲止找到數字等於1,在這一點你停止。這意味着您的算法必須移位1 + 2 + ... +(n-1)= n(n-1)/ 2位,使得算法的輸入位數爲O(n^2)
。
一個更有效的算法,將離開a
具有相同的值是a = (a == 0 ? 0 : 1)
。這會在線性時間內產生相同的答案(相等性檢查在位數上是線性的),它的工作原理是因爲如果a
最初爲零,那麼代碼將只保留a = 0
;在所有其他情況下,最高位最終在單位的地方。
相關問題
- 1. 運行時間使用大Θ符號
- 2. 遞歸函數的大θ(Θ)運行時間
- 3. 大-θ,時間複雜度
- 4. stdin檢索時的輸入行大小
- 5. 大哦當循環不是輸入(n)運行時
- 6. 減少會話大小運行時間
- 7. Bootstrap輸入Textarea行大小
- 8. 大輸入運行時錯誤
- 9. 大輸入C++運行時錯誤
- 10. 我可以說Θ(n^3/2)時間算法漸近地比Θ(n log n)時間算法慢嗎?
- 11. 帶字母間距的輸入大小
- 12. 上的N×N大小板
- 13. Condor中的最大運行時間
- 14. 在運行時將gridview的項目大小調整爲窗口大小
- 15. 運行時複雜度爲θ(n^2)的運算複雜度爲θ(n)的漸近運行時複雜度算法的運行速度總是比運行時間更快的運算時間?
- 16. n≠Θ(logn)?
- 17. 將輸入的大小限制在C#中的TextBox的大小
- 18. ipa大小和項目大小之間的巨大差異
- 19. 大O符號和θ符號之間的區別,爲什麼(θ)符號適合插入排序來描述其最壞情況下的運行時間?
- 20. 在Java中減少運行時的最大堆棧大小
- 21. C++ - 輸入流的大小
- 22. 從用戶輸入n創建一個大小爲n的數組n
- 23. 在openshift上擴展最大輸入時間和最大執行時間
- 24. T(n)兩次輸入函數的運行時間
- 25. 在運行時調整THREE.CubeGeometry的大小
- 26. 運行時大小的數組
- 27. 在運行時知道類的大小
- 28. 運行時對象的大小
- 29. 在運行時調整DialogFragment的大小
- 30. WinUSB批量輸入傳輸在傳輸大小大於最大數據包大小時失敗
[如何找到算法的時間複雜度](https://stackoverflow.com/questions/11032015/how-to-find-time-complexity-of-an-algorithm) – hatchet
你的朋友的理由是什麼?你們都同意什麼是? – hatchet
事情是我們不知道N是什麼以及它們是以N位整數表示的。 –