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. まとめ最適なソートアルゴリズムはありません。どの方法を使用するかは、ソートするデータのサイズと種類、および元のデータが大まかに順序付けられているかどうかによって決まります。ニーズに合わせて適切なアルゴリズムを選択できます。 |
<<: 新しい機械学習システムがロボットに社会的なスキルを与える
[[377490]]海外メディアの報道によると、フェイスブックは1月21日、視覚障害のあるユーザー向...
[[206688]]導入Tensorflow はバージョン 1.0 へのアップデート後に多くの新機能...
1. はじめに近年、人工知能技術は活発な発展の傾向を示し、新たな科学技術革命と産業変革をリードする戦...
出典: towarddatascienceシャシャンク・グプタ「Rake World」編集部:そうだ...
最高人民法院研究室民事部の陳龍野部長は、一部のモバイルアプリケーション(APP)はしばらくの間、パッ...
この記事では、機械学習アルゴリズムにおける非常に重要な知識である分類、つまり入力データが属するカテゴ...
ヒープは通常、(完全な) ツリーとして表示できるオブジェクトの配列です。そして、以下のルールは常に満...
アドバンテックは、2018年11月1日~2日に開催されたアドバンテックIoT共創サミットにおいて、プ...
企業は、AI を搭載し、AI 向けに構築されたデータベースを検討する必要があります。最適化と使いやす...
[[326623]] TensorFlow 2.x は、モデルの構築と全体的な使用において多くの利便...
ディープラーニングと 3D テクノロジーの発展により、Neural Radiance Fields ...
[[355787]]画像ソース: https://pixabay.com/images/id-537...