ビットコンピューティング
すべてのビット演算はバイナリで実装されています。
基本操作:
左:X * 2 ^ Yの$ $に対応する左$ $ X $ $ Yバイナリビットで、:$ X << Yの$
右:$のX >> Yの$:$ Xバイナリビットの$ Y $の権利は、$ Y $が$ 0 $にこのバイナリ番号の末尾位置に対応$、次いでによって$ 2 ^ { - Y} $
ビット単位のAND:$ \テキスト{A&B} $:バイナリの各ビットの$ A $ $ Bが$とするAND演算
ビット単位OR:$ \テキスト{| B} $:$ A $ $ Bが$およびバイナリの各ビットに対してOR演算を行います
XOR:$ \テキスト{⊕のB} $:バイナリの各ビットのために$ A $ $ Bが$とXOR
アプリケーション:
以下の低から$ X $ビットの高いに$ X $の代表者、及び実行される各命令の時間複雑度は$ O(1)であり、$
進数X $ $ $ K $第2のビット値:$ \テキスト{(X >>(k - 1))&1} $または$ \テキスト{X・(1 <<(k - 1))} $
ビット二進数X $ $ $ 1 $最後尾:$ \テキスト{X・(-x)} $
第二進数の$ Xの$ $ kは$ビット1修正:$ \テキストを{X | =(1 <<(k - 1)} $
もちろん、我々は非常に良いバイナリ配列をお勧めします:$ \ {テキストビットセット} $
シーケンス
一般的なソート
$(N ^ 2)Oの$:選択ソート、バブルソート、挿入ソート
$の\テキスト{O(nはn個のログ)} $:クイックソート、マージソート、ヒープソート
その他の並べ替え:バケットソート、ソート、ソート、基数ソートを数え、これらの速いが、そのスペースを確保するためには鳴りされていませんが、
アプリケーション:
$ N-長さは、(昇順)配列$ $ A_1、A_2、...、A_N $があります
N- $ $が奇数中央値である:$ A _ {(N + 1)/ 2} $
$ N- $が偶数で、中央値:$ \ FRAC {A_ {N / 2} + A_ {N / 2 + 1} {2} $