基本的なプログラミングアルゴリズム(I) 基本的なプログラミングアルゴリズム(II) 基本的なプログラミングアルゴリズム(III) 選択ソート 使用条件: 同等のサイズのコレクション。 アルゴリズムのアイデア: 毎回、ソートするデータ要素から最小 (または最大) の要素を選択し、ソートするすべてのデータ要素がソートされるまで、ソートされたシーケンスの最後に配置します。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}
パフォーマンス分析: 時間計算量は O(n^2) ヒープソート 使用条件: 同等のサイズのコレクション。 アルゴリズムのアイデア: 実際、ヒープ ソートは単純な選択ソートの進化形であり、その主な機能は比較回数を減らすことです。ヒープとは何ですか?シーケンスを完全な二分木と見なすと、完全な二分木内のすべての非終端ノードの値は、その左と右の子ノードの値よりも大きくありません(または小さくありません)。これをヒープと呼ぶことができます。ヒープの特性から、ヒープの最上部が最大キーワード (または最小キーワード) であることがわかります。ヒープの最上部を出力した後、残りの要素で別のヒープを構築し、最上部を出力します。この処理を繰り返し実行することで、順序付けられたシーケンスを取得できます。この処理はヒープソートと呼ばれます。 ヒープソートは主に 2 つのステップに分かれます。 (1)順序付けられていないシーケンスからヒープを構築する。 (2)最上位の要素を出力し、新たなヒープを形成する。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}
パフォーマンス分析: 時間計算量 時間計算量 O(nlogn) マージアルゴリズム 2ウェイマージアルゴリズムとも呼ばれる 使用条件: 同等のサイズのコレクション。 アルゴリズムのアイデア: 初期シーケンスに n 個のレコードが含まれていると仮定すると、これは n 個の順序付けられたサブシーケンスと見なすことができます。各サブシーケンスの長さは 1 で、次に 2 つずつ結合して、長さが 2 または 1 の [n/2] 個のサブシーケンスを取得します (ここでは長さが 1 で、シーケンスの長さが奇数の場合は最後のシーケンスがそのまま残されるため、長さは 1 になります)。次に 2 つずつ結合し、長さ n の順序付けられたシーケンスが得られるまでこのプロセスを繰り返します。 プログラミング例: int b[10]={77,1,65,13,81,93,10,5,23,17}
パフォーマンス分析: 時間計算量 O(nlogn) 要約する では、ソートアルゴリズムは数多くありますが、どのアルゴリズムをいつ使用すればよいのでしょうか? さまざまなアプリケーションや要件に応じて適切なソート方法が異なるため、次の要素を考慮して適切なソート方法を選択してください。
(1)nが比較的小さい場合(例えばn <= 50)、直接挿入ソートまたは単純選択ソートを使用することができる。 (2)シーケンスの初期状態が基本的に順序付けられている場合は、直接挿入ソートまたはバブルソートを選択できます。 (3)nが比較的大きい場合は、時間計算量がO(nlogn)のアルゴリズム(クイックソート、ヒープソート、マージソート)を使用することができる。 クイックソートは現在、比較ベースの内部ソートに最適な方法と考えられています。ソートされたキーワードがランダムに分散されている場合、クイックソートの平均時間は最短になります。 不安定 ヒープ ソートでは、クイック ソートよりも補助スペースが少なくて済み、クイック ソートで発生する可能性のある最悪のシナリオの影響を受けません。 しかし、まだ比較的不安定 マージソートは比較的安定していますが、一般的に使用することは推奨されません。実用性が低く、大量の補助スペースを占有する可能性があります。 |
<<: 距離ベクトルルーティングアルゴリズムの仕組みを説明する
>>: 基本的なプログラミングアルゴリズムを簡単にマスターする(パート2)
私たちが知っている食品の消費とレストラン体験の変革は、1921 年にカンザス州ウィチタでアメリカ初の...
テクノロジーが進歩を左右するこの急速に変化する時代において、製造業界は大きな変化を遂げています。この...
多くの注意深い国民は、気づかないうちに銀行支店の数が減少していることに気づいています。予備統計による...
特別なイベントの影響を受けて、非接触型の配達や食事が需要のトレンドになっています。その結果、業界にお...
OpenAIは10月27日、汎用人工知能(AGI)によって引き起こされる可能性のある壊滅的なリスクを...
ガートナーは、2027 年までに、生成型人工知能 (生成型 AI) を導入する企業の 70% が、持...
新しいインフラストラクチャの配置が加速するにつれて、5G、モノのインターネット、クラウドコンピューテ...
[[442368]] 1週間前、コンピュータービジョン分野の古典であるHe Kaiming氏のRe...
モデル| https://huggingface.co/ByteDance/SDXL-Lightni...
1. 「企業が人工知能やモノのインターネットなどの新しいテクノロジーの導入を検討するにつれ、攻撃対象...
[51CTO.com クイック翻訳] 機械学習は、機械が直接プログラムされることなく学習できるように...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
AI は教育テクノロジーの分野では以前から使われてきましたが、その導入は遅れています。しかし、COV...
概要スイス政府コンピュータ緊急対応センター (GovCERT) は最近、Tofsee ボットネット ...