LiteDBソース分析シリーズ(4)表根拠をジャンプ

  インデックステーブル内のLitDBデータ構造を達成するためのジャンプで、私はオープンソースプロジェクトもRedisのを含んでジャンプテーブルを使用することを知って、あなたはRedisのジャンプテーブルの機能に達成するためにインターネットを検索することができます。この章では、私はLiteDBテーブルのジャンプを説明するために例を結合します。

 他のデータ構造と表1の比較をジャンプ

  私たちはしばしば、Bツリー、赤、黒の木、AVL木、スプレイツリー、Treepを聞くが、あなたは良い多くの詳細を検討する必要があり、私たちが達成するために、エディタ自体を開いてみましょうことができます。使用ジャンプテーブルは、それがランダム化されたデータ構造で、効率とAVL木や赤黒木のパーで、非常にシンプルですが、その原則は限り操作は、リストを読むことができるよう、あなたは簡単にジャンプを達成することができ、複雑ではありませんテーブル。

 検索ジャンプテーブル1.1

  

  ジャンプテーブルには、次のプロパティがあります。

  (1)多くの層からなる構造を

  (2)各層は、順序付けられたリストであります

  リストのすべての要素を含む(3)最低レベル(レベル1)

  要素がリスト内のレベルIのリストに表示された場合は(4)それはまた、レベルIに表示されますの下に。

  (5)各ノードは二つのポインタ、同じリスト内の次の要素へのポインタ、次の要素のいずれかへのポインタを含みます。

  例:要素117を探します

  (1)21の比較を、大以上21を、背面に探し

  (2)先頭から、リストの最大値よりも小さく、37よりも大きい、37の比較は、以下の層を見つけるために37

  (3)最初から、リストの最大値よりも小さく、71よりも大きい、71の比較は、以下の層を見つけるために71

  (4)85より大きく85の比較を、後ろから見て

(5)比較117は、ノードを見つけるために、117に等しいです。

 

 ジャンプテーブル1.2を挿入

  最初の要素の層の数は、Kによって占有されるように決定し、レベル1(失われた完全にランダムであるコインの方法によって)...個々の層におけるレベルKは、要素のリスト内に挿入されます。

  例:挿入119、K = 2

 1.3  空間分析ジャンプテーブルの複雑さ

  上記の分析によれば、各素子2、ジャンプテーブルのサイズn、値2Nを期待されているノードの数の高さのために望ましいです。

 2.LiteDBインデックスジャンプテーブルの挿入可視化アニメーション

  上記のグラフィックによると、私たちは大体、テーブル、クエリ、そのジャンプを見ると、ここで私はLiteDBは、レコードを挿入まだ「顧客と呼ばれる、次のアニメーションテーブルの挿入方法を示すために視覚的な方法を使用し、理解することは非常に簡単です挿入することができます「テーブル、フィールド{」ID「」年齢「」名 『}、今ランダム記録10があり、界面に挿入されたときに、次の文書11枚のレコードは、フィールド』年齢「屈折率変化、インデックスに挿入し、追跡するために、見たときにはっきりと見ることができる、次の視覚化ツール:

 3.LiteDBインデックスジャンプテーブルルックアップ可視化アニメーション

  上記のデータでは、私は、データの年齢9を見つけ、そして今、我々はそれをよく見インデックスクエリが最初に(拡大するためには画像をクリックしてジャンプテーブルの本質である最初の左後方から右の順、以下のステップを参照することができます):

 4.おわりに

  LiteDBの解釈は、おそらく私が一般的なプロセスは、各モジュールの機能を参照してください追加し、インデックスを検索するための制御クラス図に示すクラス図対このソースを使用することで、あなただけの視覚化するための方法を考えることができると思い、ここで停止します。LiteDB最新バージョンがうまく利用して機能を追加し、プロジェクトの背後に使用された場合、また、使用上のいくつかの詳細を更新するために戻ってくることがあります。

おすすめ

転載: www.cnblogs.com/xiaozhangStudent/p/11052105.html