如何找到这个程序的时间复杂度?

时间:2017-05-06 11:29:50

标签: haskell

我有一个数据列表。

db = [("Ada","works", "IBM")
  ,("Alice","director", "Ada")
  ,("Tom","works", "IBM")
  ,("Tommy","director", "Tom")
 ,("IBM","isat",     "CA")
 ,("CA","in",       "USA")
 ]
ask db = map (\(x,y,z) -> (z == "IBM")) db 

如何计算O(n)的复杂度? 如果我想通过列表2,5,10.O(n)的长度获得结果与2,5,10相同?如果我这样做

trans2 db = concat (map ((x,y,z) -> concat (map((x',y',z') -> if (z==x') then [] else [(x,y ++ "." ++ y',z')] else []) db)) db ) 

如何计算O(n)?程序的运行时间?调整复杂性

1 个答案:

答案 0 :(得分:1)

问题尚不清楚,我预计很快就会关闭。简言之。

O(n)的复杂性。如果你知道O(n)并且你想要复杂性,那么你就完成了。

列表的长度(2,5,10,你有什么)不是这种情况下复杂性的一个因素,因为长度是n所代表的。

没有代码会自动计算算法的复杂性。这是一个手动分析。