From: MoonWolf Date: 2004-04-19T20:04:34+09:00 Subject: [ruby-dev:23408] Ruby/Bsearch This is a multi-part message in MIME format. --------------050503090803070003080401 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit MoonWolfです。 [ruby-dev:14464] Ruby/Bsearch で高林さんのRuby/Bsearchを標準添付するとい う方向に話が進んでCVSのrough/lib/bsearchにインポートされましたが、その後 どうなってますでしょうか? どうせ標準添付するなら高速なほうがいいと思ってRuby/Bsearchを拡張ライブラ リとして書き直してテストも書いてみました。 1.8.2 or 1.9.xに標準添付しませんか? ArrayのサブクラスでSortedArrayにするという話もあったので適当に実装してみ ました。(SortedArray#<<とSortedArray#indexだけ) 拡張ライブラリとしては実装しづらいですね。array.cに書くべきかも。 # BitSetも標準添付されるといいなぁ。とか言ってみたりして(^^; --------------050503090803070003080401 Content-Type: application/x-gzip; name="bsearch-20040419.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="bsearch-20040419.tar.gz" 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 --------------050503090803070003080401 Content-Type: application/x-gzip; name="sortedarray-20040419.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="sortedarray-20040419.tar.gz" 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 --------------050503090803070003080401--