コンピューターサイエンスでは、あなたが学ぶ概念はそれを示すまでは役に立ちません。したがって、コンピューターサイエンスの世界では大きな懸念事項です。
コンピューターサイエンスのほとんどすべての側面にアルゴリズムが必要だと思います。これを紹介しましょう。次のリストには、コンピューターサイエンスのさまざまな分野とそれらが使用するアルゴリズムが含まれています。
オートマトン
パワーセット構造。非決定性オートマトンを決定性オートマトンに変換するアルゴリズム。
Todd-Coxeterアルゴリズム。剰余類を生成する手順。
人工知能
アルファベータ。アルファ最大プラスベータ最小。ボードゲームで広く使用されています。
Antアルゴリズム。アリのコロニー最適化は、問題を解決し、2つの場所間の最適なパスを見つけるために、アリの行動に触発されたアルゴリズムのセットです。
DE(微分進化)。チェビシェフ多項式近似問題を解きます。
オンライン製品レビューにおける皮肉な文の半教師付き認識。ツイートまたはオンライン文書で皮肉や皮肉を認識するアルゴリズム。このようなアルゴリズムは、ヒューマノイドロボットのプログラミングにも不可欠です。
コンピュータビジョン
縮図。画像または動画を小さいもので表します。
画像内のオブジェクトをカウントします。接続コンポーネントのラベル付けアルゴリズムを使用して、最初に各オブジェクトにラベルを付け、次にオブジェクトをカウントします。
O'Carrollアルゴリズム。昆虫の視覚の数学的変換から、このアルゴリズムは物体を回避する方法を評価します。
遺伝的アルゴリズム
3つの演算子を使用します。選択(ソリューションを選択)、再現(選択したソリューションを使用して他のソリューションを構築)、交換(より良い場合はソリューションを交換)。
フィットネスの比例選択。ルーレットホイール選択とも呼ばれる、ソリューションの選択に使用される関数です。
切り捨ての選択。ソリューションを選択するための別の方法で、フィットネスによって順序付けられています。
トーナメントの選択。トーナメントの種類ごとに最適なソリューションを選択してください。
確率的ユニバーサルサンプリング。個人は線の連続したセグメントにマッピングされ、各個人のセグメントのサイズは、ルーレットホイールの選択とまったく同じサイズになります。
ニューラルネットワーク
ホップフィールドネット。バイナリしきい値ユニットを備えた連想メモリシステムとして機能するリカレント人工ニューラルネットワーク。それらは安定状態に収束します。
バックプロパゲーション。人工ニューラルネットワークのトレーニングに使用される教師あり学習手法。
自己組織化マップ(Kohonenマップ)。教師なし学習を使用してトレーニングされたニューラルネットワークは、トレーニングサンプルの低次元(2D、3D)表現を生成します。高次元データの視覚化に適しています。
バイオインフォマティクス
ニードルマン・ブンシュ。タンパク質またはヌクレオチド配列の2つの配列でグローバルアライメントを実行します。
スミス・ウォーターマン。ニードルマン・ブンシュのバリエーション。
圧縮
ロスレス圧縮アルゴリズム
Burrows-Wheeler変換。ロスレス圧縮の改善に役立つ前処理。
デフレート。ZIPで使用されるデータ圧縮。
デルタエンコーディング。順次データが頻繁に発生するデータの圧縮を支援します。
増分エンコード。文字列のシーケンスに適用されるデルタエンコーディング。
LZW。(Lempel-Ziv-Welch)。LZ78の後継。圧縮するデータから変換テーブルを作成します。GIFグラフィカル形式で使用されます。
LZ77および78。さらなるLZバリエーションの基礎(LZW、LZSS、...)。どちらも辞書コーダーです。
LZMA。Lempel-Ziv-Markov chain-Algorithmの略です。
LZO。速度を重視したデータ圧縮アルゴリズム。
PPM(部分一致による予測)。コンテキストのモデリングと予測に基づく適応統計データ圧縮技術。Shannon-Fanoコーディング。シンボルのセットとその確率に基づいてプレフィックスコードを構築します。
切り捨てられたバイナリ。通常、有限のアルファベットを持つ均一な確率分布に使用されるエントロピーエンコーディング。バイナリエンコーディングを改善します。
ランレングスエンコーディング。同じコードのシーケンスをオカレンスの数で置き換える一次圧縮。
Sequitur。文字列の漸進的な文法推論。
EZW(埋め込みゼロツリーウェーブレット)。画像をビットストリームに圧縮して精度を高めるプログレッシブエンコーディング。損失の多い圧縮でも、より良い結果が得られる場合があります。
コードをシンボルの確率とコード長に合わせるようにコードをシンボルに割り当てる Encodingコーディングスキーム。
ハフマンコーディング。相対的な文字周波数を利用した単純な可逆圧縮。
適応ハフマン符号化。ハフマン符号化に基づく適応符号化技術。
算術コーディング。高度なエントロピーコーディング。
範囲エンコード。算術コーディングと同じですが、見方が少し異なります。
単項コーディング。nに1が続き、その後にゼロが続く数値nを表すコード。エリアスデルタ、ガンマ、オメガコーディング。正の整数をエンコードするユニバーサルコード。フィボナッチコーディング。正の整数をバイナリコードワードにエンコードするユニバーサルコード。
ゴロムコーディング。幾何学的分布に従うアルファベットに最適なエントロピーコーディングの形式。
ライスコーディング。 幾何学的分布に従うアルファベットに最適なエントロピーコーディングの形式。
非可逆圧縮アルゴリズム
線形予測コーディング。音声のデジタル信号のスペクトルエンベロープを圧縮形式で表すことによる損失のある圧縮。
A-lawアルゴリズム。標準の圧伸アルゴリズム。
Mu-lawアルゴリズム。標準のアナログ信号圧縮またはコンパンディングアルゴリズム。
フラクタル圧縮。フラクタルを使用して画像を圧縮するために使用される方法。
変換コーディング。オーディオ信号や写真画像などのデータのデータ圧縮の種類。
ベクトル量子化。非可逆データ圧縮でよく使用される手法。
ウェーブレット圧縮。画像および音声の圧縮に適したデータ圧縮の形式。
暗号化
秘密鍵(対称暗号化)
復号化と暗号化の両方に秘密鍵(または直接関連する鍵のペア)を使用します。
Rijndaelとしても知られるAdvanced Encryption Standard(AES)。
フグ。古くなったDEの代替として意図された汎用アルゴリズムとしてSchneierによって設計されました。
データ暗号化標準(DES)、以前はDEアルゴリズム。
IDEA(国際データ暗号化アルゴリズム)。以前はIPES(改善されたPES)、DESの代替。PGP(Pretty Good Privacy)によって使用されます。キーを使用して、ブロックに分割されたデータに対して変換を実行します。
RC4またはARC4。インターネットトラフィック用のSSLやワイヤレスネットワーク用のWEPなどのプロトコルで広く使用されているストリーム暗号。
小さな暗号化アルゴリズム。いくつかの式を使用して、ブロック暗号アルゴリズムを簡単に実装できます。
PES(提案された暗号化標準)。 IDEAの古い名前。
公開鍵(非対称暗号化)
公開キーと秘密キーとして指定されたキーのペアを使用します。公開鍵はメッセージを暗号化し、秘密鍵のみがメッセージの復号化を許可します。
DSA(デジタル署名アルゴリズム)。素数と乱数を使用してキーを生成します。米国の機関で使用され、現在はパブリックドメインです。
エルガマル。GNU Privacy Guardソフトウェア、PGP、およびその他の暗号化システムで使用されるDiffie-Hellmanに基づいています。
RSA(Rivest、Shamir、Adleman)。電子商取引プロトコルで広く使用されています。素数を使用します。
Diffie-Hellman(Merkle)キー交換(または指数キー交換)。保護されていない通信チャネルで秘密を共有する方法とアルゴリズム。RSAによって使用されます。
NTRUEncrypt。畳み込み乗算を使用した多項式のリングを使用します。
メッセージダイジェスト機能
メッセージダイジェストは、任意の長さの文字列またはデータを暗号化したコードであり、ハッシュ関数によって処理されます。
MD5。CDまたはDVDのISOイメージを確認するために使用されます。
RIPEMD(RACE Integrity Primitives Evaluation Message Digest)。MD4の原則に基づき、SHA-1に類似しています。
SHA-1(セキュアハッシュアルゴリズム1)。関連する暗号化ハッシュ関数のSHAセットで最も一般的に使用されます。NSA機関によって設計されました。
HMAC。キー付きハッシュメッセージ認証。
タイガー(TTH)。通常、Tigerツリーハッシュで使用されます。
擬似乱数を使用した暗号化を
参照してください。乱数ジェネレーター
暗号技術
秘密共有、秘密分割、キー分割、M of Nアルゴリズム。
シャミールの秘密共有スキーム。これは、多項式補間に基づく式です。
Blakleyの秘密共有スキーム。本質的に幾何学的であり、秘密はm次元空間のポイントです。
その他の技術と解読
サブセット合計。整数のセットが与えられた場合、サブセットの合計はゼロになりますか?暗号化で使用されます。
Shorのアルゴリズム。RSAなどの非対称関数に基づいてコードを解読できる量子アルゴリズム。
幾何学
ギフト包装。点の集合の凸包を決定します。
ギルバート-ジョンソン-ケールティ距離。2つの凸形状間の最小距離の決定。
グラハムスキャン。平面内の一連の点の凸包を決定します。
線分交差点。ラインがスイープラインアルゴリズムと交差するかどうかを確認します。
多角形のポイント。特定のポイントが特定のポイント内にあるかどうかをテストします。
レイ/プレーンの交差。
*線/三角形の交差。*光線/平面交差の特定の場合。
暗黙の表面のポリゴン化。暗黙の表面を多角形表現で近似します。
三角測量。距離がわかっている他のポイントへの角度からポイントまでの距離を評価する方法。
グラフ
3D Surface Trackerテクノロジー。非表示の表面を考慮しながら、ビデオの壁に画像を追加するプロセス。
ベルマンフォード 重み付きグラフの最短経路を計算します(エッジの重みの一部が負になる場合があります)。
ダイクストラのアルゴリズム。エッジの重みが負でないグラフで最短経路を計算します。
摂動法。グラフ内のローカル最短パスを計算するアルゴリズム。
フロイド・ワーシャル。重み付き有向グラフのすべてのペアの最短経路問題を解きます。
フロイドのサイクル発見。繰り返しのサイクルを見つけます。
ジョンソン。疎な重み付き有向グラフのすべてのペアの最短パスアルゴリズム。
クラスカル。グラフの最小全域木を見つけます。
プリム。グラフの最小全域木を見つけます。DJP、JarníkまたはPrim–Jarníkアルゴリズムとも呼ばれます。
* Boruvka。*グラフの最小全域木を見つけます。
フォード・フルカーソン。グラフの最大フローを計算します。
エドモンズ・カープ。Ford-Fulkersonの実装。
ノンブロッキングミニマルスパニングスイッチ。電話交換用。
ウッドハウスシャープ。グラフの最小全域木を見つけます。
春ベース。グラフ描画のアルゴリズム。
ハンガリー人。完全に一致するアルゴリズム。
着色アルゴリズム。グラフ彩色アルゴリズム。
最寄りの隣人。最寄りの隣人を見つけます。
トポロジカルソート。(方向に従って)エッジを持つすべてのノードの前に各ノードが来るように、有向非循環グラフをソートします。
Tarjanのオフライン最小共通祖先アルゴリズム。ツリー内のノードのペアの最小共通祖先を計算します。
グラフィックス
ブレゼンハムのラインアルゴリズム。決定変数を使用して、指定された2点間の直線をプロットします。
風景3D風景を描きます。
* DDAラインアルゴリズム。*浮動小数点演算を使用して、指定された2点間の直線をプロットします。
塗りつぶし。接続された領域を色で塗りつぶします。
画像の復元。写真を復元し、画像を改善します。
Xiaolin Wuのラインアルゴリズム。ラインアンチエイリアス。
画家のアルゴリズム。3次元の風景の可視部分を検出します。
レイトレーシング。リアルな画像レンダリング。
フォンシェーディング。3Dコンピュータグラフィックスの照明モデルと補間方法。
グーローシェーディング。3Dオブジェクトの表面全体の光と色のさまざまな効果をシミュレートします。
スキャンラインレンダリング。架空の線を移動して画像を作成します。
グローバルイルミネーション。他のオブジェクトからの直接照明と反射を考慮します。
補間。デジタルズームなどの新しいデータポイントの構築。
リシンセサイザー。写真上のオブジェクトを削除し、PhotoshopおよびThe Gimpで使用される背景を再構築します。リシンセサイザーのチュートリアル。
勾配切片アルゴリズム。これは、線を描くための勾配切片式の実装です。
スプライン補間。Rungeの現象によるエラーを減らします。
3D Surface Trackerテクノロジー。 ビデオの壁に画像またはビデオを追加し、隠された表面を考慮します。
リスト、配列、ツリー
検索中
辞書検索。予測検索を参照してください。
選択アルゴリズム。リスト内でk番目に大きいアイテムを見つけます。
バイナリ検索アルゴリズム。ソートされたリスト内のアイテムを見つけます。
幅優先の検索。レベルごとにグラフをトラバースします。
深さ優先検索。ブランチごとにグラフを横断します。
最高の検索。優先度キューを使用して、重要度が高い順にグラフを走査します。
ツリー検索。*用途ヒューリスティックはスピードを向上させるためにすることを最良優先探索の特殊なケース。
均一コストの検索。コストが異なる最低コストのルートを見つけるツリー検索。
予測検索。検索用語の大きさと検索の最高値と最低値を考慮した検索のようなバイナリ。
ハッシュ表。ソートされていないコレクション内のアイテムにキーを関連付けて、線形時間でそれらを取得します。
補間検索。予測検索を参照してください。
仕分け
バイナリツリーの並べ替え。挿入ソートと同様の、増分、バイナリツリーのソート。
ボゴソート。非効率的なデスクカードのランダムな並べ替え。
バブルソート。インデックスのペアごとに、順不同の場合はアイテムを交換します。
バケットの並べ替え。リストをバケットに分割し、個別にソートします。ハト穴ソートを一般化します。
カクテルソート(または双方向バブル、シェーカー、リップル、シャトル、ハッピーアワーソート)。それぞれがリストを通過する両方向にソートするバブルソートのバリエーション。
コームソート。リストの終わり近くの小さな値である「カメ」を排除し、値の間のギャップを利用するバブルソートの効率的なバリエーション。
ソートのカウント。リストAの数値の範囲を使用して、この長さの配列Bを作成します。Bのインデックスは、Aの値がi未満の要素の数をカウントするために使用されます。
Gnomeソート。挿入ソートに似ていますが、要素を適切な場所に移動するのは、バブルソートのように一連のスワップによって行われます。
ヒープソート。リストをヒープに変換し、ヒープから最大の要素を削除し続け、リストの最後に追加します。
挿入ソート。ソートされたアイテムのリストで現在のアイテムがどこに属しているかを判別し、そこに挿入します。
イントロソート。または内省的なソート。クイックソートで始まり、特定の再帰レベルでヒープソートに切り替わります。
ソートをマージします。リストの前半と後半を別々にソートし、ソートされたリストをマージします。
パンケーキソート。シーケンスのプレフィックスの要素を逆にします。
ピジョンホールソート。空の配列に、ソートする配列のすべての要素を順番に入力します。
郵便配達員の並べ替え。郵便局で使用されるバケットソートの階層バリアント。
クイックソート。リストを2つに分け、最初のリストのすべてのアイテムが2番目のリストのすべてのアイテムの前に来るようにします。次に、2つのリストを並べ替えます。多くの場合、選択方法。
基数ソート。アイテムに関連付けられたキー、または数字を処理して整数をソートします。
選択ソート。残りの要素のうち最小のものを選択し、ソートされたリストの最後に追加します。
シェルソート。値間のギャップを使用して挿入ソートを改善します。
スムーズソート。ヒープソートを参照してください。
確率的ソート。bogosortを参照してください。
などなど...