1. バブルソートバブル ソートは、C 言語のシンプルな初級レベルのソート アルゴリズムです。ソートする要素の列を繰り返し訪問し、隣接する 2 つの要素を順番に比較し、順序が間違っている場合はそれらを交換します。交換する必要がある隣接する要素がなくなるまで、つまり要素列がソートされるまで、チェックと比較を繰り返します。このアルゴリズムの名前の由来は、水の泡が最終的に上に浮かぶように、小さい (大きい) 要素が交換を通じてゆっくりとシーケンスの上部 (昇順または降順) に「浮かぶ」ため、「バブル ソート」という名前が付けられています。 アルゴリズムの説明 1. 隣接する要素を比較します。最初の値が2番目の値より大きい場合は、それらを交換します 2. 隣接する要素の各ペアに対して、最初のペアから最後のペアまで同じ操作を実行し、最後の要素が最大の数になるようにします。 3. 最後の要素を除くすべての要素に対して上記の手順を繰り返します。 4. ソートが完了するまで手順1~3を繰り返します。 ソースコード
運用結果
2. 選択ソート選択ソートは、シンプルで直感的なソート アルゴリズムです。まず、ソートされていないシーケンス内で最小 (最大) の要素を検索し、ソートされたシーケンスの先頭に格納します。次に、残りのソートされていない要素から最小 (最大) の要素を検索し続け、ソートされたシーケンスの末尾に配置します。すべての要素がソートされるまでこれを繰り返します。 アルゴリズムの説明 1. 初期状態では、すべてのデータは無秩序領域に属し、秩序領域は空である。 2. 順序付けされていない領域から最小の要素を選択し、順序付けされていない領域の最初の要素と交換します。 3. 順序なし領域が空になるまで、順序なし領域の次の要素から手順2を繰り返します。 ソースコード
前のアルゴリズムのbubble_sortの例はselection_sortに置き換えることができ、実行結果は同じです。 3. 挿入ソート挿入ソート アルゴリズムは、順序付けられたシーケンスを構築することによって機能します。ソートされていないデータの場合、ソートされたシーケンス内で後ろから前へスキャンし、対応する位置を見つけて挿入します。 アルゴリズムの説明 1. 最初の要素から始めて、要素はソートされているとみなすことができます 2. 次の要素を取り出し、ソートされた要素の順序で後ろから前へスキャンします。 3. 要素(ソート済み)が新しい要素より大きい場合は、要素を次の位置に移動する 4. ソートされた要素が新しい要素以下になる位置が見つかるまで手順 3 を繰り返し、その位置に新しい要素を挿入します。 5. 手順2~4を繰り返します ソースコード
4. 標準ライブラリ関数 qsort前の 3 つのソート アルゴリズムは、単一の要素のみをソートします。ただし、実際のアプリケーションでは、MAC、名前、暗号化情報、信号強度などの WiFi 情報構造の配列など、大きな構造が特定の値に基づいてソートされます。WiFi 情報は、情報強度に従ってソートされます。各データ交換は、2 つのメモリ コピーを意味します。このシナリオでは、選択ソートの方がわずかに優れています。 車輪の再発明に比べると、C言語の標準ライブラリ関数の方が適切かもしれません。qsort関数はC言語に付属するソート関数で、 関数プロトタイプ
base - ソートする配列の最初の要素へのポインタ nitems - 配列内の要素数 size - 配列内の各要素のサイズ(バイト単位) compar - この関数に基づいて 2 つの要素を比較します 戻り値: 値 値は返されません デメリット: 複数の繰り返し値を持つ配列では効率が低く、不安定になる 例
その効果は前の 3 つのアルゴリズムと同じであり、特定の要素値に基づいて構造全体をソートするように拡張でき、信号強度によって Wi-Fi 情報をソートするという以前の要件を満たします。
運用結果
5. まとめ最適なソートアルゴリズムはありません。どの方法を使用するかは、ソートするデータのサイズと種類、および元のデータが大まかに順序付けられているかどうかによって決まります。ニーズに合わせて適切なアルゴリズムを選択できます。 |
<<: 新しい機械学習システムがロボットに社会的なスキルを与える
人工知能はビジネス環境を一新し、競争環境を変え、仕事の本質を変革しています。しかし、人間の創造性も ...
[[251811]]画像ソース @Visual China人工知能の概念は、提唱されてから60年以...
[[397024]]ドメイン一般化 (DG) は近年非常に人気のある研究方向となっています。研究す...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
1. 保険業界における詐欺防止に関する問題点とよくある事例保険業界における詐欺問題はますます深刻化し...
触覚は人間が相互作用を調整する主な方法の 1 つです。触覚を通じて知覚される触覚は、人間が物体の大き...
2023年中国(太原)人工知能会議が本日、山西省太原で開幕しました。中国工業情報化部科学技術部の任愛...
シェルソート(縮小増分法)は挿入型ソートに属し、順序付けられていないシーケンス全体をいくつかの小さな...
[[275279]]アンソニー・レヴァンドウスキーはシリコンバレーのスターエンジニアです。自動運転技...
近年、バーチャルデジタルヒューマン業界は大変人気が高まっており、あらゆる分野の人々が独自のデジタルヒ...
強化学習では、報酬と罰のメカニズムを使用してエージェントをトレーニングします。エージェントは正しい行...
近年、インターネット金融の波は伝統的な金融業界に課題をもたらしています。同時に、伝統的な金融企業の情...
1年前——同システムでは、今後2年間で総注文数が約1億件に達すると予測している。 1 つの MyS...
大規模モデルは AI コミュニティのトレンドとなり、主要なパフォーマンス チャートを席巻するだけでな...