3

このコードの複雑さは?

foreach $var (keys %varset) { 
  print "${var}\n";
}

それは O(n^2) ですか、それとも O(n) ですか?

4

2 に答える 2

9

O(n)です。foreachループが始まると、式はリスト コンテキストで評価され、ループはそのリストを反復処理します。1 つには、後続の への呼び出しがkeys同じ順序でキーを返すという保証はなく、同じキーを返すという保証もないため、式を再評価した場合、次の要素をどのように判断するのでしょうか?

于 2013-05-12T18:09:13.587 に答える