早速、世界で最も「美しい」ソートアルゴリズムについてお話ししましょう。
「アルゴリズム入門」の演習にある「完全ソート」は、ハワード教授やファイン教授を含む数人の教授によって提案されました。コードの実装がエレガントで、すっきりしていて、美しいことから「完全ソート」と呼ばれています。 コードは分かりにくいので、アイデアを段階的に説明します。 まず、ソートのために渡されるパラメータは、ソートする配列arr[i, j]です。 ステップ 1: 位置 i と j の要素を比較し、ソート規則に従ってそれらを置き換えるかどうかを決定します。 ナレーション: Ben Lizi、ソートのルールは小さいものから大きいものへの順だと仮定します。 順列が完了したら、ソートが完了したかどうかを判断します。i と j が隣接している場合、ソートは完了しています。 ステップ2: arr[i, j]を3つの等しい部分に分割します。 ナレーション: 要素の総数は j-i+1 です。 ステップ 3: arr の最初の 2/3 に再帰的に戻ります。 ステップ 4: arr の 2 番目の 2/3 に再帰的に戻ります。 ステップ 5: arr の最初の 2/3 に再帰的に戻ります。 並べ替えが完了しました。 すごいじゃないですか!!! もう一度見てください、感動しましたか?
コードの見た目は良いですが、完全なソートは非常に遅いアルゴリズムなので役に立ちません。 コードから簡単にわかります:
つまり、その時間計算量再帰式は次のようになります。
「すべての時間計算量の計算を解く」の再帰計算方法を使用すると、最終的に、完全ソートの時間計算量は O(n^2.7) であり、これは O(n^2) ソートよりも遅いことがわかります。 完全なソートの証明はこの記事では展開されていません。コードからは、スワップと 3 回の再帰を通じて、ソートが完了するまで、小さな要素が先頭に移動し、大きな要素が後ろに移動する傾向があることが直感的にわかります。 ナレーション: クイック ソートのプロセスは、パーティション + 2 回の再帰であり、ソートが完了するまで、小さい要素が先頭に移動し、大きい要素が最後尾に移動します。 皆さんがこの瞬間から何かを得られることを願っています。 [この記事は51CTOコラムニスト「58 Shen Jian」によるオリジナル記事です。転載については原作者までお問い合わせください。] この著者の他の記事を読むにはここをクリックしてください |
<<: Dynatrace のフルスタック AI モニタリングは、企業が AWS クラウドで飛躍するのを助けます
>>: 4つの主要な機械学習プログラミング言語の比較: R、Python、MATLAB、Octave
7月26日、マルチメディア分野の世界最高峰の学術会議であるICME 2021で開催された「圧縮UGC...
光学文字認識 (OCR) は、機械が画像やスキャンされた文書からテキストを認識して抽出できるようにす...
アリババは9月26日、杭州で開催された雲奇大会で、初めて同社の人工知能通話の規模を発表した。1日あた...
今日の AI テクノロジーを使用して手作業を自動化しましょう。文書の校正、アートの作成、Google...
デジタル時代が進化するにつれ、世界的なデータ損失を防ぐための高度なテクノロジーの役割がますます重要に...
今日の大企業は、産業化以来最大の変革を経験しています。人工知能は、産業や私たちの働き方、考え方、交流...
手書き模倣AIの研究背景諺にあるように、人の筆跡はその人の性格を表す。硬い印刷フォントと比較すると、...
[[442813]]画像ソース: https://pixabay.com/images/id-673...
ガベージコレクションのボトルネック従来の世代別ガベージ コレクション方式では、ある程度、アプリケーシ...
8月1日、 Comma.aiは、2016年に著名なアメリカ人ハッカー、ジョージ・ホッツ氏によって自動...
今日では、コンピュータ技術は人々の生活のあらゆる側面に浸透しており、仕事や勉強に大いに役立つものとい...
[[417589]]パイソン[[417590]] Python は現在、機械学習で最も人気のあるプ...
教師あり学習とは何ですか?教師あり学習は機械学習のサブセットであり、機械学習モデルの入力データにラベ...