ジャンプ台
まず、ジャンプテーブルはO(logN個)のそれらの平均複雑さを見つけるために命じたデータ構造であり、最悪時間計算量は、バランスの取れたツリーと同等ほとんどの場合、O(N)です。Redisのは、クラスタ内のノードの順序集合としてそれを使用して実装し、データ構造など。
ノードは、テーブルの右に、左のために、以下のデータ構造定義テーブルをスキップ:
左手は、メンバーのリストは、固有robjの階でなければならない逆トラバースを逆転するために使用され、各ノードはランダム数1〜32です。
整数
ときに、基礎となる実装として小さな整数セットは、として定義されたデータ構造は、以下:
各整数要素は、アレイ内の大きさ、及び無重複の順に配置されています。要素の内容のタイプはコーディングではなく、int8_tに依存することに注意
アップグレード
整数の集合に要素を追加する場合、新しい要素の型は要素型の元の内容よりも長い場合、アップグレードは何?、最初にアップグレードする必要があります。したがって、添加元素の時間複雑度は、O(N)であり、かつ劣化のアレイをサポートしていない〜
- 新しい要素の種類に応じて、元の内容に基づいて容量を拡張
- 過去(後方移動)移動古い要素
- 新しい要素が追加されます
何が良いので、この自動アップグレードはありますか?
〜第二に、メモリを節約するために、あなたはInt64の大きな整数を使用するためにそれを必要とする場合にのみ、最初はサイズに関係なく範囲の要素を追加するとき、それは自分自身の成長には十分ではありません、確かに便利です。