3

ソートされたリストがあり、そのリスト内に要素を配置して、前の要素が <= で、リスト内の次の要素が > になるようにする必要があります (リストは浮動小数点数のリストです)。

<= である要素の位置、つまり前の要素を返す必要があります

これを対数時間で実装するにはどうすればよいですか。binary seacrh に似た方法を使用することを考えましたが、機能しませんでした

どんな助けでもいただければ幸いです

PS 例は次のとおりです。リストが

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]

関数を 0.27 で実行すると、関数は 1 (0.25 の位置) を返し、0.5 で実行すると 2 を返します。

4

1 に答える 1

3

二分探索専用のモジュールがあります: bisect

import bisect

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]
print bisect.bisect(testlist, .27) - 1
## 1
于 2012-04-01T15:52:40.710 に答える