當我想到自己時,我正在閱讀關於Haskell的教程; Haskell的tail
函數具有何種時間複雜性(以及爲什麼)?(我找不到任何文檔中的答案)Haskell的「尾巴」功能有什麼時間複雜性?
我猜想,對於大小爲n的列表中,tail
功能將爲O(n),即只複製過的尾巴到一個新的列表,並返回那個。但是,再次,我不太瞭解Haskell的底層架構(我是這個語言的新手)。
當然,我可以計時。但是我不知道如何在Haskell中實現一些東西,而且我也想了解Haskell如何處理這個問題,以證明爲什麼它是O(n)/ O(1)或其他。
感謝提前:)
至於挑戰問題;如果我可以假設列表是一個單鏈表(如Williems答案中所述),它應該是O(n),因爲沒有最後一個元素沒有刪除「指針」到最後一個元素(不可能)或將值複製到不包含最後一個元素的新鏈接列表中。這是推理的正確方法嗎? –