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. まとめ最適なソートアルゴリズムはありません。どの方法を使用するかは、ソートするデータのサイズと種類、および元のデータが大まかに順序付けられているかどうかによって決まります。ニーズに合わせて適切なアルゴリズムを選択できます。 |
<<: 新しい機械学習システムがロボットに社会的なスキルを与える
2019 年のベスト オープンソース プロジェクトを選択するために、Medium のネットユーザーが...
10月9日のニュースによると、AIビッグモデルは近年、人工知能の分野で話題になっており、リアルなテ...
少し前に、AIマスターのKarpathyが立ち上げたAIコースは、ネットワーク全体で15万回の視聴を...
7月6日、本日開幕した世界人工知能会議で、マスク氏は会議に直接出席しなかったものの、インターネット...
エッジコンピューティングと人工知能の組み合わせにより、エッジ人工知能 (エッジ AI) は現在のテク...
ロイター通信によると、7月5日、国連技術機関はスイスで行われた「人類の利益のためのAI」イベントで、...
最近、シビチェンがチップスを製造しているというニュースが大きな騒ぎを引き起こしました。 [[2547...
AIインテリジェンスは近年急速に発展しており、技術の進歩をもたらす一方で、一部の業界にも影響を与え...
[[415316]]海外メディアの報道によると、オーストラリアの裁判所は、特許出願において人工知能...
1. 金融テクノロジー金融テクノロジー: これは業界ではフィンテックと呼ばれています。 Wikip...
FastTextは、Facebookが2016年にオープンソース化した単語ベクトル計算およびテキスト...
デジタル革新が主流の時代において、ディープフェイク動画の増加は広く懸念されるようになっている。ディー...
2017年7月、国務院は「新世代人工知能開発計画」を発表し、人工知能が国家戦略の重要なツールとなって...