アルゴリズムの基本セット

ビットコンピューティング

すべてのビット演算はバイナリで実装されています。

基本操作:

左: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} $

おすすめ

転載: www.cnblogs.com/zengpeichen/p/11308136.html