From: "NAKAMURA, Hiroshi" Date: 2001-08-09T19:36:48+09:00 Subject: [ruby-dev:14398] Re: [Patch] pp.rb and debug.rb なひです。 > From: Yukihiro Matsumoto [mailto:matz@ruby-lang.org] > Sent: Thursday, August 09, 2001 6:55 PM > |今回の目的では、Array#pushしてArray#includeするのと、 > |Hash#[]=してHash#[]するのと、どちらが早いでしょうねぇ。 > | > |上記各メソッドのオーダーってどこかに整理されてたりしますか? > > 前者はO(n)、後者はほぼO(1)ですが、だからといって後者がいつも > 速いとは限らないというのがO記法の難しいところです。 ありがとうございます。Arrayは任意の位置が見えないといけない(お気楽でなくなる) ので難しいですね。ArrayがO(n)とすると、 例えHash#*の単価がある程度高かったとしても、 今回についてはHashのほうがよさそうな感じがします。 ただ田中 哲さんの考察のとおり、Thread.currentで Thread safeに && Threadの裏に隠しちゃうのがよさそうな気がするので、 Thread.current[hoge]にHashを入れるのかしら。ちょっと単価が高い?