前回の記事「エントリーレベルのデータベースのアルゴリズム [I]」では、いくつかのデータ アルゴリズムを紹介しました。ここでは、引き続きいくつかの基本的なソート アルゴリズムを紹介します。 バブルソート 使用条件:コレクションの要素はサイズを比較できます アルゴリズムのアイデア:ソートするレコードを継続的にスキャンします。スキャンするたびに、最小のレコードが見つかり、それが一番上に近づきます。各スキャンではレコードが最終的な最も正しい位置に配置されるため、次のスキャンではレコードを再確認する必要がありません。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17} はバブルソートされます(ここで概念を混同していました。指摘してくれた zdd に感謝します)
パフォーマンス分析:時間計算量 O(n^2) シェルソート 使用条件:コレクションの要素はサイズを比較できます アルゴリズムのアイデア:まず、ソートするレコードのシーケンス全体をいくつかのサブシーケンスに分割し、それぞれに対して直接挿入ソートを実行します。シーケンス全体のレコードが「基本的に順序付けられている」場合は、すべてのレコードに対して直接挿入ソートを実行します。サブシーケンスは単に「セグメントに分割」されるのではなく、特定の「増分」で区切られたレコードによってサブシーケンスが形成されます。そのため、比較して並べ替えるときに、キーワードが小さいレコードは段階的に前に進むのではなく、一定の増分で移動します。「増分」は減少傾向を示し、最終的にこの「増分」は常に 1 になります。このとき、シーケンスは基本的に順序付けられており、並べ替えを完了するために必要な比較と移動はわずかです。シェルソートの増分設定がわかりにくい。一般的に、8 つの数字の「増分」を 4、2、1 に設定することを検討します。 (これはシェルソートの一般的な設定です)。次に、「増分」h(n+1)=3*h(n)+1 を計算する式を作成します (h>N/9 で停止)。この式は増分には最適ではないかもしれませんが、一般的な「増分」設定には適用できます。数字が 8 個ある場合、ここでの増分は 1 です。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}はシェルをソートする //ヒルソートの自動増分は自分で選択する必要があります
パフォーマンス分析:ヒルソートの時間計算量は少々複雑です。特定の「増分」に応じて変化します。ここでは、著者は Yan Weimin の「データ構造」から O(n^3/2) を使用しています。 クイックソート 使用条件:同等のサイズのコレクション。 アルゴリズムのアイデア:ソート パスを通じて、ソートするレコードは 2 つの独立した部分に分割されます。レコードの一方の部分のキーワードがもう一方の部分のキーワードよりも小さい場合、レコードの 2 つの部分を別々にソートして、最終的に順序付けられたシーケンスに到達できます。ここで重要なポイントは、セグメンテーションの「ベンチマーク」を選択することです。この「ベンチマーク」より大きい場合は 1 つの部分に分割し、この「ベンチマーク」より小さい場合は 1 つの部分に分割する必要があります。ここで、著者はデフォルトでこの部分の最初のレコードを「ベンチマーク」として使用します。 例: int b[10]={77,1,65,13,81,93,10,5,23,17}
パフォーマンス分析:時間計算量 O(nlogn) これまで、一般的な基本的なデータ検索およびソートアルゴリズムを紹介してきましたが、これらは最も基本的なアルゴリズムであり、そこから多くのアルゴリズムを拡張することができます。 オリジナルリンク: http://www.cnblogs.com/couhujia/archive/2011/03/24/1993373.html 【編集者のおすすめ】
|
<<: エントリーレベルのデータベースアルゴリズム [パート 3]
私たちの生活、仕事、交流の仕方に革命をもたらす技術の進歩によって、未来は常に形を変えています。今後 ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[397642]] Neural Radiance Fields (NeRF) は、AI 生成の...
1. データの近代化とは何ですか? デジタル時代においてなぜ重要なのですか?データの最新化とは、デー...
編集者注: ブロックチェーンと AI は、今日最もホットな 2 つの技術方向であると言えます。一般の...
[[205882]]北京時間10月10日朝のニュースによると、中国の検索大手、百度はシアトル地域にオ...
政策の推進と資本の注目により、人工知能産業は今後も急速な発展傾向を維持するでしょう。投資家は人工知能...
「そう遠くない将来、スマートホームシステムを備えていない家庭は、インターネットにアクセスできない今...
現在、特定の NLP タスクのパフォーマンスを最適化するための最善のアプローチは、事前トレーニング済...