は、私はさておきdo_something_withが呼ばれる方法を変更するから、このルビーループリファクタリング
def slow_loop(array)
array.each_with_index do |item, i|
next_item = array[i+1]
if next_item && item.attribute == next_item.attribute
do_something_with(next_item)
end
end
end
のように見えるループを持って、どのように私は、これはパフォーマンスが向上することができますか?
THX、
-C
P.S.
これは 'O(n)'操作であるように見えるので、ここで得られるパフォーマンスはないと思われるので、私が選択した答えは、この操作を既にカプセル化しているrubyメソッドを使用するものです。みんな助けてくれてありがとう
おそらく、あなたが持っている要素の数と、あなたが思いついたベンチマークの数字を教えてください。これはO(n)操作であるべきです(SHOULD)。 – Trey
これは愚かに聞こえる場合は私を許してください、しかし、O(n)の操作は何ですか? –
基本的には、操作の時間は要素の数に直接関係しますn –