我找到了這個定義:
Asymptotic Notations是一種分析演算法運行時間的語言,通過在演算法的輸入大小增加時識別其行為來分析演算法的運行時間。這也稱為演算法的增長率。
這讓我開始思考,是否還有其他符號,或者是否有可能使用除輸入大小之外的任何度量來分析演算法?
uj5u.com熱心網友回復:
是的,有很多選擇。例如,由于漸近符號忽略了前導系數,因此它不是推理精確操作計數的好工具。但是,使用更精確的分析,在某些情況下,您可以確定演算法運行時間的主要系數是輸入大小的函式。這在數值方法等領域有應用,這些領域的輸入量很大并且這些領先的常數很重要。
您還可以查看演算法固有的并行度,如果您想在多核機器上運行演算法,這將很有用。或者您可能會查看演算法并行化時需要多少通信,這在分布式計算中有應用。
您還可以查看演算法實作方式的結構元素。對于代碼,您可以查看諸如圈復雜度之類的東西,它根據存在多少控制路徑來衡量一段代碼的“復雜性”。對于布爾電路,您可以查看電路的深度。對于排序網路,您可以查看網路中的輪數。
您還可以從查看輸入的大小切換到輸入的其他一些屬性。固定引數易處理性的想法是基于這樣的見解,即演算法的輸入可能具有“簡單”部分和“困難”部分,如果“困難”部分不是那么難,您可能能夠解決即使傳統意義上的輸入很大,問題也會很快解決。
您還可以分析演算法對其輸入的微小變化的敏感性。也許該演算法在大多數情況下運行得非常快,但在其他情況下卻非常緩慢(線性規劃的單純形法就是一個很好的例子)。平滑復雜性等工具正是針對這一點的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434657.html
下一篇:第K個最小數演算法做額外的作業?
