0
お客様の口座番号が有効な番号範囲のいずれかに合致するかどうかを確認する状況(パフォーマンスが重要)それらの千人)。それを行う最も効率的な方法は何でしょうか?どのように(そしてどこで)範囲を保存するのか、どのように検索するのか?特定の数値が大きな範囲の範囲に収まるかどうかを確認する最も効率的な方法
お客様の口座番号が有効な番号範囲のいずれかに合致するかどうかを確認する状況(パフォーマンスが重要)それらの千人)。それを行う最も効率的な方法は何でしょうか?どのように(そしてどこで)範囲を保存するのか、どのように検索するのか?特定の数値が大きな範囲の範囲に収まるかどうかを確認する最も効率的な方法
これを行うには、Segment Treeを使用することを検討すべきです。
n個の区間の集合Iのセグメントツリーは、O(n log n)の記憶域を使用し、O(n log n)時間で構築することができます。セグメントツリーはOでクエリ点を含むすべての間隔で検索をサポート、検索間隔又はセグメントの数であるK(N + Kログ)。[1]
だから、範囲クエリを実行本当に効率的です。
おかげで橋。私はインターネット上でそれを調べるために行きました、そして幾分関連した構造 - 区間木を見つけました。どちらの方が良いと思いますか?セグメントツリーは、O(nlogn)であるのに対し、区間木の空間消費@MeshSolomon –
(n)はOです。また、区間ツリーは、セグメントツリーが静的である間に、挿入および除去操作を可能にする。インターバルツリーは優れているようですが、私は完全にはわかりません。 – qiao
ありがとうございました。私は両者を詳しく調べようとします。 –