問題タブ [b-tree]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java での Btree または B+tree の既存の実装
私は、btree または b+tree データ構造を必要とするプロジェクトを行っています。btree または b+tree (挿入、削除、検索アルゴリズムを使用) の既存の実装を知っている人はいますか? 文字列を入力として受け入れ、これらの文字列の btree または b+tree を形成する必要があります。
b-tree - ノードが分割されたときにどの要素が昇格されるか
次数 8 の B ツリーがあるとします。これは、8 つのポインターと 7 つの要素を持つことができることを意味します。A から G までの文字がこの B ツリーに格納されているとします。したがって、この B ツリーは、7 つの要素を含む単一のノードにすぎません。
次に、J をツリーに挿入しようとします。空きがないので、ノードを分割して新しいルート ノードを作成する必要があります。ルート ノードに昇格する要素はどれですか?
b-tree - この B ツリーはどのようになりますか?
B ツリーの順序は 4 です。つまり、ノードは 4 つのポインターと 3 つのキーを保持できます。
以下が挿入されます。
すべてが 1 つのノードに収まらないため、ノードが分割されることはわかっています。したがって、これらが挿入された後、2 つの子ノードを持つルート ノードが存在することはわかっていますが、それらがどのようになるかは正確にはわかりません。
b-tree - B ツリーの最大の深さ
B ツリーの最大の深さをどのように把握しますか?
次数が 1625 の B ツリーがあるとします。つまり、各ノードには 1625 のポインターと 1624 の要素があります。
85,000,000 個のキーが含まれている場合、ツリーの最大の深さは?
animation - B-tree がどのように機能するかを視覚的に示す B-tree プログラムまたはサイトはありますか?
B ツリーからアイテムを挿入および削除し、B ツリーがどのように見えるかを視覚的に示す次の Web サイトを見つけました。
これに似た別のウェブサイトまたはプログラムを探しています。このサイトでは、次数 4 (4 つのポインターと 3 つの要素) の B-tree を指定することはできません。要素の数が偶数の B-tree のみを指定できます。また、できれば数字の代わりに文字を挿入できるようにしたいです。
実際には別のサイトを見つけたと思いますが、それは少し前のことで、もう見つけることができません。
b-tree - このB+ツリーに要素が繰り返されているのはなぜですか?
このB+ツリーでは、5が2回表示されます。
c - ファイルシステムに B+ ツリーを実装するには?
以下のように、ファイルシステム内のすべてのファイルに関するエクステントに関する情報を含むテキストファイルがあります C:\Program Files\abcd.txt 12345 100 23456 200 C:\Program Files\bcde.txt 56789 50 26746 300 .. .
今、すべてのファイルのエクステントを見つけようとする別のバイナリがあります。現在、線形検索を使用して、上記のテキスト ファイル内のファイルのエクステント情報を検索しています。これは時間のかかるプロセスです。これをコーディングするより良い方法はありますか? BTree のような適切なデータ構造を実装するように。B+ ツリーを使用する場合、キーとなるブランチ ファクターは何を使用する必要がありますか?
algorithm - 挿入時に再配布を使用する B ツリー
文字 A、G、I、および Y を順序 4 (各ノードに 4 つのポインターと 3 つの要素を意味する) の B ツリーに挿入すると、次の B ツリーが得られます。
挿入時の再配布が使用された場合、見た目は変わりますか? 挿入時の再配布はどのように機能しますか?
indexing - CouchDBのBツリーデータベースに実際に保存されているデータは何ですか?
CouchDBデータベースのBツリーに実際に何が格納されているのでしょうか。CouchDB:The Definitive Guideには、データベースBツリーが追加専用操作に使用され、データベースが単一のBツリー(ビューごとのBツリー以外)に格納されることが記載されています。
したがって、データベースファイルに追加されるデータ項目は、ドキュメント全体ではなく、ドキュメントのリビジョンであると思います。
それは本当ですか?
それが本当なら、ドキュメントの現在のリビジョンは、そのようなBツリーに基づいてどのように決定されますか?
それは、CouchDBが、 O(log n)アクセスを維持するために、ドキュメントの現在のリビジョンにインデックスを付けるための別個の「ビュー」データベースを必要とするということではありませんか?そのような指標を構築している間、それは競合状態につながるのではないでしょうか?(私が知る限り、CouchDBは書き込みロックを使用しません)。
java - B ツリー リビジョン
線の交点 (水平線と垂直線のみ) を探していて、半分が垂直で交点がない n 本の線がある場合、
y 値で線の終点のリストを並べ替えるには、mergesort を使用して N log N が必要です
データ構造の各挿入削除と検索 (B ツリーであると仮定) は < log n になります
したがって、合計検索時間は N log N になります
ここで欠けているのは、マージソートを使用してソートする時間が N log N かかり、挿入と削除に < log n の時間がかかる場合、N log N の全体時間を与えるために定数係数を削除することです。そうでない場合は、 ONotation の合計実行時間で < log n が失われるのはなぜですか?
ありがとう