JavaScriptでバブルソートを使って配列をソートする方法
JavaScriptで、リテラル値の配列を受け取り、バブルソートを使って並べ替える関数を作成してみましょう。ここでは、実際に動作するサンプルコードとその仕組みを詳しく解説します。
バブルソートとは
バブルソートは、隣り合う要素同士を比較して、順序が正しくなければ入れ替えるという操作を繰り返すシンプルなソートアルゴリズムです。大きな値が徐々に配列の末尾へ「泡」のように浮かび上がっていく様子から、この名前が付けられています。計算量はO(n²)と効率は劣りますが、ロジックが分かりやすく、学習用のアルゴリズムとして最適です。
実装例
それでは、実際のコードを見ていきましょう。
const arr = [4, 56, 4, 23, 8, 4, 23, 2, 7, 8, 8, 45];
const swap = (items, firstIndex, secondIndex) => {
var temp = items[firstIndex];
items[firstIndex] = items[secondIndex];
items[secondIndex] = temp;
};
const bubbleSort = items => {
var len = items.length,
i, j;
for (i=len-1; i >= 0; i--){
for (j=len-i; j >= 0; j--){
if (items[j] < items[j-1]){
swap(items, j, j-1);
}
}
}
return items;
};
console.log(bubbleSort(arr));
コードの解説
- swap関数:一時変数
tempを使って、配列内の指定された2つの要素を入れ替えます。 - bubbleSort関数:外側のループで走査範囲を狭めながら、内側のループで隣接する要素を比較・交換します。これにより、各パスごとに最大値が末尾へ移動していきます。
出力結果
コンソールには、昇順に並べ替えられた配列が以下のように出力されます。
[
2, 4, 4, 4, 7,
8, 8, 8, 23, 23,
45, 56
]
-
JavaScriptのsort()メソッドとは?配列ソートの基本と比較関数の使い方を解説
JavaScriptのsort()メソッドは、配列の要素を並べ替えるための組み込みメソッドです。アルファベット順・数値順といった並べ替えの基準に加え、昇順・降順も自由に指定できます。デフォルトでは要素が文字列として比較され昇順にソートされますが、比較関数を渡すことで任意の順序を実現できます。 なお、sort()は元の配列そのものを変更する「破壊的メソッド」である点にも注意しましょう。元の配列を保持したい場合は、スプレッド構文([...arr])などで事前にコピーしておくのが安全です。 コード例 以下は、sort()メソッドを使って配列をソートするシンプルなサンプルコードです。 <!DO
-
JavaScriptのmap()メソッドで配列を変換する方法を解説
JavaScriptで配列の各要素を別の値に変換したい場合、map()メソッドを使うのが最も一般的で効率的な方法です。map()は、元の配列の各要素に対して指定したコールバック関数を実行し、その戻り値から新しい配列を生成します。元の配列は変更されないため、安全に処理を行えるのが大きな特徴です。 以下は、map()メソッドを使って配列の各要素を2乗に変換するサンプルコードです。 コード例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /&