作者は長い間ブログを更新していませんでした。その理由の一つは、開発したプロジェクトで使用されている技術がすべて古い技術であり、私が接触した知識はすべて業界のロジックプロセスであるため、自分で要約しただけで共有しなかったことです。もう 1 つの理由は、現在 C++ 言語と基本的なコンピューター知識 (アルゴリズムなど) を再学習しているところです。 次のコードは C++ コードです。早速本題に入りましょう。 バイナリ検索はバイナリ検索とも呼ばれます。 使用条件:注文済みセット。 アルゴリズムの考え方:最初に検索対象のレコードが配置されている範囲 (間隔) を決定し、その後、レコードが見つかるか見つからないかになるまで徐々に範囲を狭めていきます。 ポイントは、中間の位置に記録されたキーワードを指定された値と比較することです。指定された値より大きい場合(ここでは、セットが小さいものから大きいものに配置されていると仮定します)、間隔の範囲を狭め(セットの開始->中間の前のポジション)、間隔の中間の位置に記録されたキーワードを指定された値と比較し、位置が見つかるか見つからないかになるまでサイクルを繰り返します。 プログラミング例:整数データ int a[10]={1,5,10,13,17,23,65,77,81,93}; 1) これは再帰です(ここでの判断条件の誤りを指摘してくれた仲間のユーザー zdd に感謝します。これは if(min>max) に変更する必要があります)
2) 非再帰的
パフォーマンス分析:時間計算量 O(logn) 挿入ソート 使用条件:同等のサイズのコレクション。 アルゴリズムのアイデア:ソートされた順序付きシーケンスにレコードを挿入して、レコード数が 1 増加した新しい順序付きシーケンスを取得します。挿入するレコードは、すでにソートされたシーケンスと順番に比較されます。シーケンス番号が挿入するレコードより大きい場合は、挿入するレコードより小さいシーケンスが見つかるまでシーケンスを 1 つ戻します。このとき、シーケンスの次の位置に挿入され、すべての位置が埋まるまで上記の操作が繰り返されます。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}でソートする
パフォーマンス分析:時間計算量 O (n^2) バイナリ挿入ソート 使用条件:同等のサイズのコレクション。 アルゴリズムの考え方:基本的な考え方は、単純な挿入ソートと似ています。唯一の違いは、挿入位置を見つけることです。単純な挿入ソートでは、順次比較を使用します。ここではバイナリ挿入ソートが改良され、順次検索がバイナリ検索に改良されています。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}でソートする
パフォーマンス分析:時間計算量 O (n^2) ここでの時間計算量は単純な挿入ソートと同じですが、挿入位置を見つけるために使用される比較の数は大幅に削減されます。 オリジナルリンク: http://www.cnblogs.com/couhujia/archive/2011/03/23/1991110.html 【編集者のおすすめ】
|
<<: エントリーレベルのデータベースアルゴリズム [パート 2]
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
今日の急速に変化するデジタル世界では、組織はローコード/ノーコード (LC/NC) アプリケーション...
Facebook、プリンストン大学、MITのAI研究者らは最近、ディープラーニングが実際にどのよう...
9月17日、上海の西外灘で2018年世界人工知能大会が正式に開幕した。ジャック・マー、ポニー・マー...
毎年恒例の国際コンシューマー・エレクトロニクス・ショー(CES)が始まったため、ラスベガス・ストリッ...
過去数年間、ディープラーニングは、従来の機械学習を凌駕し、ほとんどの AI 型の問題に対する頼りにな...
[[376127]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
人工知能はヘルスケアに変革をもたらす力となることが期待されています。では、医師と患者は AI 駆動型...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[248486]]グーグルの自動運転車開発会社ウェイモはすでに試験的な移動サービスの一部を有料化...
会議で苦しめられてきた労働者はついに解放される!先日終了した Google Cloud Next...
インターネット アプリケーションの急速な発展に伴い、分散システムにおけるキャッシュが重要な役割を果た...
[[418851]] [51CTO.com クイック翻訳]非常に複雑な技術的アプリケーションで A...