面白いプライマーとしてのアルゴリズムのようなグラフィックノベルアルゴリズム

リンク:https://pan.baidu.com/s/1FJTA9xEiiOtsLJBgP2Tn7A

抽出コード:q3vz

ここに画像を挿入説明

アルゴリズムの第1章はじめに

「バイナリ検索」:シンプル順次検索と比較すると、アルゴリズムは、順序付けられたリストに適用されるが、特に増加時間リストで、効率を向上させることになります。

ランダウの記号:(むしろ時間より)成長の実行時記述、最悪の場合に示されている動作時間、例えばO(ログn)およびO(N)として。

第2章選択ソート

アレイ:メモリ内のアドレスに隣接する要素。読むスピード、ランダム・アクセス・サポート、O(1)。インサート(プレースホルダが容易メモリの浪費につながると転送する必要)および要素を削除し、O(n)は便利ではありません。

リスト:次のエレメントアドレスに各要素を格納します。同時にすべての要素を、高い効率を読み取るが、必要であればジャンプ、非効率的で、O(N)。高速挿入および削除要素、O(1)。

並び替え選択:各注文を完了するために、残りの要素から最大/小さな要素を見つけ、時間計算量はO(N2)です。

第3章再帰

再帰:関数自体に関数を呼び出します。基本ケース(ベースケース)と再帰条件(再帰的な場合)を含みます。

再帰的な条件は、自分を呼び出す関数を参照せず、ベースライン状態を指し、もはや機能で無限ループを避けるために、自分自身を呼び出します。

コールスタック:すべての機能は、コールスタック、スタックと完全なスタックに呼び出します。コールスタックは非常に長くなることが多くのメモリを取るだろう、(特に再帰に)、あなたはサイクリングや末尾再帰に切り替えることができます。

第4章クイックソート

分割統治(分割統治、D&C):周知の再帰的な問題解決、①単純なベースライン条件を識別し、②それがベースライン条件を満たすように、問題の規模を縮小する方法を決定します。

クイックソート:①ランダムに選択された基準値を、2つのサブアレイに②配列:要素が基準値よりも小さく、基準値は、要素よりも大きい。③2つのサブアレイすばやくソート;そう再帰。

ランダウの記号:一定時間C、通常考えられていないが、状況の同じ時間計算に影響を受けることができます。クイックソートの平均実行時間:O(nlog n)は、最悪の場合:O(N 2)。

第5章ハッシュテーブル

ハッシュ関数:同じ入力は常にさまざまなインデックスに異なる入力をマッピング、同じインデックスにマップされます。

ハッシュテーブル:データ構造(キー値)、及びアレイ合成ハッシュ関数、記憶素子の位置を決定するために使用されるハッシュ関数。アナログマッピングが重複してキャッシュを防ぐために速度が非常に高速で、検索の挿入および削除。

紛争:同じ場所に割り当てられた2つのキー。解決策は単純である:2つのキーが同じ位置、この位置で店舗チェーンにマッピングされている場合。リストに保存されているハッシュテーブルが非常に長い場合には、ハッシュテーブルの速度が劇的に低下します。競合を回避するために、ハッシュ関数を有する必要がある:低い充填率(充填率が0.7を超えると、ハッシュテーブル/位置を含む要素の総数は、ハッシュ・テーブルの長さを調節に関して);グッドハッシュ関数(均一性マップを)。

第6章BFS

図:ノード(ノード)と縁部(エッジ)組成物は、直接多くのノードを有するノードに接続することができ、これらのノードは、ネイバーと呼ばれます。図は、有効/無効の図を分割しました。

キュー:FIFO(FIFO);スタック:最後のアウト(LIFO)。

BFSは、二つの問題に答えます。最初の質問:ノードAから、ノードBが行う行くためのパスを持っていますか?問題の第二のクラス:ノードAからノードB最短に行くパス?

アルゴリズム:①検討するオブジェクトを格納するためのキューを作成します。②は、キューからオブジェクトをポップアップ;③オブジェクトがオブジェクトを満たしているかどうかをチェックし、④ではないすべてのネイバーがキューに参加するオブジェクトの場合は、⑤バックステップ2へキューが空になるまで継続する、またはターゲットを見つけること;(注意:オブジェクトを確認した後、確認としてマークされるべきではない、それはもはや確認されています。)

実行時間:O(V + E)、Vは頂点(ヴェル)数であり、Eはエッジの数です。

第7章ダイクストラアルゴリズム

ツリー:なし指背側で特別な図。

ダイクストラ法:それは、ベルマンフォードアルゴリズムを使用することができる負右側が含まれている場合、重み付けグラフで最短経路を見つけるために、電源にのみ正の有用な重量を量ります。

アルゴリズム:①ノードの「安い」を見つけるために、ノードは到着の最短時間であることができる。②ノードのオーバーヘッド隣人を更新する。③グラフ上の各ノードがそうするまで、このプロセスが繰り返される。④最後のルートを計算します。

ダイクストラ法の背後にある主要なアイデアは:安いグラフノードを見つけるために、ノードはありません安いルートことを確実にするために!この仮定は、右の設定負の側面だけではありません。

第8章貪欲アルゴリズム

同様のリストを、しかし、重複要素、実行可能な和、積、差演算を含めることはできません設定します。

貪欲アルゴリズム:このように、グローバルな最適解を得るための試みを局所最適解を見つけます。

NP完全問題:①アルゴリズムの走行速度が非常に速く、より少ない要素がある場合ですが、要素数の増加に伴い、速度が非常に遅くなります。②「すべての組み合わせ」とは、一般にNP完全問題であるに関する問題、③問題は分割できません小さな問題、あなたはすべての可能なケースを考慮しなければならない、これはNP完全であってもよく、④問題が解決する(例えば巡回セールスマン問題、都市シーケンスなど)のシーケンスと困難な場合、それはNP完全問題であるかもしれない。⑤問題は、コレクションに関連する場合(放送局のコレクション)と解決が困難で、それはNP完全問題であるかもしれない、⑥問題は、それは確かにNP完全である、その後、問題をカバーするか、巡回セールスマン問題セットに変換することができます。

(;最適解の近さと近似解どのくらいの速)NP完全問題について、迅速な解決策を見つけるためにまだ持って、ベストプラクティスは、近似アルゴリズムを使用することです。

第9章ダイナミックプログラミング

動的計画:問題は、サブ問題や互いの個別の独立したに分解することができたときに最適解を見つけることが条件で制約を与え、あなたが解決するために、動的プログラミングを使用することができます。

各動的計画ソリューションは、グリッド値を伴う、セルは、各セルの値を最適化するために、自己の問題です、それは考慮すべきであるどのようにグリッドを特定するのに役立ちますサブ問題への問題、軸。

第10章K近傍法

KNN:分類と回帰のために使用され、最近傍を考慮する必要があります。分類グループ(オレンジまたはグレープフルーツ)であり、回帰は(数として)予測です。

特徴抽出は:項目を同等の一連の図に、あなたはKNNアルゴリズムの成功に関連する適切な機能を選ぶことができます(果物やユーザーがなど)(密接に関連し、公平)を意味します。

距離計算:ピタゴラス式、またはコサイン類似度。

第11章次の操作を行う方法

バイナリ検索番号:それは大きいよりも、各ノードについて、の値は、それが小さいよりも、子供、そして右の子の値を残しました。バイナリ検索ツリーの場合に検索ノード、平均実行時間は、(ログn)Oであるが、最悪の場合に必要な時間はO(N)であり、順序付けられた配列は、二分探索とインサートの数を比較し、削除操作はるかに速く、そのようなないランダムアクセスなどのいくつかの欠点があります。Bツリーは、赤黒木、スタック、等スプレー木を理解することができます。

リバース指数(逆索引):それを含むページに単語をマップするハッシュテーブルのように、多くの場合、検索エンジンを作成するために使用されます。

フーリエ変換:歌は、異なる周波数に分けることができた場合には、そのような非表示にするには、低音と高音を強化するよう、あなたが気に部品を強化することができます。フーリエ変換は、音楽を圧縮するために使用されてもよい信号を処理するのに適しています。

並列アルゴリズム:それは、彼らが正常に動作し、所望の速度の増加が困難である達成することを確実にするために、設計することは困難です。一つは、それは考慮に並列性と負荷分散の管理オーバーヘッドを取る必要があり、それは、スピードの増加は直線的ではないが、確かです。

MapReduceの2つの単純な概念に基づいて - マッピング(地図)と機能のマージ(軽減)機能。

ブルームフィルタ:答えを提供して確率的データ構造を入力するには無いそうですが、正しい可能性が高いです。ハッシュテーブルを使用する場合は、その答えは、ブルームフィルタを使用しながら、答えが正解である可能性が最も高い、絶対的に信頼性があります。ブルームは、収納スペースが少しによって占められる利点をフィルタリングします。HyperLogLog:セット中の異なる要素のおおよそ計算された数は、ブルームフィルタとして、それは正確な答えを出すことはできませんが、基本的には、占有メモリ空間ははるかに少ないです。

ハッシュアルゴリズム(セキュアハッシュアルゴリズム、SHA)の機能を確保する:文字列を考えると、SHAはそのハッシュ値を返します。SHAが広く一方向ハッシュアルゴリズムで暗号ハッシュ値の計算を、使用されています。

産地敏感なハッシュアルゴリズム:二つのことは、あなたがSimhashが有用、類似度をチェックする必要があるときに時々、あなたは逆の結果をしたい、という希望は、大文字と小文字が区別されるローカルハッシュ関数です。

Diffie-Hellmanアルゴリズムとその代替RSAはまだ広く使用されています。公開鍵と暗号化および復号化するための秘密鍵:それは2つのキーを使用しています。

線形計画:最大与えられた指定された制約を改善するための指標。

おすすめ

転載: blog.csdn.net/u014211007/article/details/93732848