バブルソートの長所と短所

PCおよびWeb開発からモバイルデバイスまたは組み込みシステムのコーディングに切り替えるプログラマーは、独自のデータ構造とアルゴリズムの選択とコーディングにより多くの時間が費やされることに気付きます。 メモリが少なく、データストレージが限られているため、事前に構築されたライブラリやフレームワークを使用する余地はありません。 したがって、独自のソートルーチンを作成する必要がある場合は、低バブルソートを選択する際の考慮事項をいくつか示します。

バックグラウンド

バブルソートは、メモリ内のアイテムのリストをソートする単純なアルゴリズムです。 配列が与えられると、コードは隣接するアイテムの各ペアを繰り返し比較し、順序が正しくない場合はそれらを交換します。 このプロセスは、スワップが発生しなくなるまで繰り返されます。 並べ替えの進行中に配列を表示できる場合、低い値は上に「バブル」し、大きな値は下に沈みます。 Visual Basic2010の関連コードは次のとおりです。

今日のビデオ

スワップ= Trueスワップ= False For i = 0 To tbl.length-2 If tbl(i)> tbl(i + 1)Then tmp = tbl(i)tbl(i)= tbl(i + 1)tbl(i + 1)= tmp swap = True End If Next End While

バブルソートを選択するタイミング

このアルゴリズムにはいくつかの利点があります。 書くのも理解するのも簡単で、数行のコードしか必要ありません。 データはその場でソートされるため、メモリオーバーヘッドはほとんどなく、ソートされると、データはメモリ内にあり、処理の準備ができています。 主な欠点は、並べ替えにかかる時間です。 テーブル要素の数が増えると、平均時間はほぼ指数関数的に増加します。 アイテム数の10倍は、ソートにほぼ100倍の時間がかかります。

その他の配列ソート

並べ替えアルゴリズムは、複雑さ、速度、オーバーヘッドが異なります。 バブルソートは最も複雑ではありませんが、最も遅いものの1つでもあります。 挿入ソートや交換ソートなどの他の配列ベースのソートは少し高速ですが、より多くのコードが必要です(以下の参照を参照)。 配列ベースのソートの主な利点は、使用するコードが最小で、作業メモリーの使用量が最小であることです。 アイテムが数百未満の単純な配列の場合は、これらの並べ替えを検討してください。

複雑なソートアルゴリズム

データセットが大きいほど、より複雑なコードとより多くのメモリが必要になります。 クイックソートとヒープソートは、データセットの分割とコピーの両方を行って、比較の数を最適化します。 クイックソートは継続的にリストを分割し、ソートされた順序でリストを再構成します。 ヒープソートは、データをツリー構造にコピーしてから、ツリーをトラバースしてデータを元の順序にコピーします。 どちらも高速で効率的ですが、より多くのコードとはるかに多くの作業用ストレージを必要とします。 大規模なデータセットには、これらのアルゴリズムを選択してください。