私は時の配列を持っていますevent_times
と私はt in event_times
をチェックしたいと思います。しかし、私はevent_times
がソートされていることを知っています。検索をより速くするためにそれを利用する方法はありますか?ソート済みのバージョン
3
A
答えて
5
慣用ユリウス道はの精緻次のようになります。その後、
struct SortedVector{T,V<:AbstractVector} <: AbstractVector{T}
v::V
SortedVector{T,V}(v::AbstractVector{T}) where {T, V} = new(v)
# check sorted in inner constructor??
end
SortedVector(v::AbstractVector{T}) where T = SortedVector{T,typeof(v)}(v)
@inline Base.size(sv::SortedVector) = size(sv.v)
@inline Base.getindex(sv::SortedVector,i) = sv.v[i]
@inline Base.in(e::T,sv::SortedVector{T}) where T = !isempty(searchsorted(sv.v,e))
そして:私が正しくリコール
julia> v = SortedVector(sort(rand(1:10,10)))
10-element SortedVector{Int64,Array{Int64,1}}:
1
4
5
5
6
6
6
7
7
10
julia> 3 in v
false
julia> 1 in v
true
デビッド・サンダースは、この名前の実装を持っていました。おそらくhttps://github.com/JuliaIntervals/IntervalOptimisation.jl/blob/889bf43e8a514e696869baaa6af1300ace87b90b/src/SortedVectors.jlを見ると、再利用が促進されます。
4
@ ColinTBowersのヒントに続いて、searchsorted
は、t
がevent_times
にない場合、空の範囲を返します。したがって、!isempty(searchsorted(event_times,t))
は答えを得るための高速な方法です。
関連する問題
- 1. ソート済みのファイルルビー
- 2. CNTK 2のソート済みミニバッチソース
- 3. ポリマーdom-repeatソート済みイベント
- 4. CoreDataソート済みエンティティ - パフォーマンス
- 5. ソート済みリストの挿入ソートアルゴリズム
- 6. ソート済みセットのRedis CPUパフォーマンス
- 7. Pythonでソート済みのサッカーリーグテーブルを作成
- 8. ソート済みノードに挿入する
- 9. C++ソート「調整済み」比較ファンクタ
- 10. ソートされたサブリストをソート済みスーパーリストにマージ
- 11. バインド時にソートされたソート済みリスト
- 12. リサイクラービューライブラリバージョンコンパイル済みSDKバージョンと互換24
- 13. ソートされた配列からソート済み多項式配列へのアルゴリズム
- 14. ソート済みノードの次の兄弟の選択
- 15. 2つのソート済みリストの並列マージ
- 16. 文字列[]内のソート済みハッシュマップのSystoreキー値
- 17. Javaのイテレータを使用したソート済みリストのマージ
- 18. ソート済みのテキストファイルのバイナリ検索ですか?
- 19. c#ソート済みノードベースのリストに値を追加する
- 20. C++:std :: merge =>ソート済みリストの使用
- 21. ソート済み()を使用して、Pythonで基本的な文字列ソート
- 22. Postgresのインストール済みバージョンのPostgresサーバ側(バックエンド)ヘッダファイルのインストール方法
- 23. 定義済みの行バージョンのエンティティフレームワークの更新
- 24. コンパイラの以前のバージョンのコンパイル済みヘッダ
- 25. 最新のSPListItemの承認済みバージョンを見つける
- 26. gwt-maven-pluginでの自己コンパイル済みGWT SDKバージョンの使用
- 27. C++ Bimap左unordered_map右ソート済み可変マルチマップ
- 28. ToDictionaryを使用してソート済み辞書を作成する
- 29. 定義済みリストに基づくRubyソート
- 30. コンパイル済みのOpenCVバージョンを使用したCake
'?searchsorted'と便利な関連関数'?searchsortedfirst'と '?searchsortedlast'を参照してください –