目次
バブルソートとは
バブルソートは、要素が正しい順序に並ぶまで隣接する要素を交換するソートアルゴリズムです。要素の比較と交換が繰り返されるため、効率性は低いですが、実装が比較的簡単です。
アルゴリズムの説明
- 配列を先頭から順に走査します。
- 隣接する要素を比較し、順序が逆であれば交換します。
- 走査を繰り返し、要素の交換が行われなくなるまで続けます。
コード例
以下に、バブルソートのコード例を示します。
function bubbleSort(arr) { let len = arr.length; let swapped; do { swapped = false; for (let i = 0; i < len - 1; i++) { if (arr[i] > arr[i + 1]) { let temp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = temp; swapped = true; } } } while (swapped); return arr; } let array = [5, 3, 8, 4, 2]; console.log(bubbleSort(array)); // [2, 3, 4, 5, 8]
応用例
バブルソートは単純なソートアルゴリズムですが、応用例も存在します。以下に、応用例のコード3個を示します。
1. 文字列のソート
let strings = ["apple", "banana", "cherry", "date"]; console.log(bubbleSort(strings)); // ["apple", "banana", "cherry", "date"]
2. オブジェクトのソート
let objects = [ { name: "John", age: 30 }, { name: "Alice", age: 25 }, { name: "Bob", age: 35 } ]; console.log(bubbleSort(objects)); // [{ name: "Alice", age: 25 }, { name: "Bob", age: 35 }, { name: "John", age: 30 }]
3. 日付のソート
let dates = [new Date("2022-01-01"), new Date("2021-01-01"), new Date("2023-01-01")]; console.log(bubbleSort(dates)); // [new Date("2021-01-01"), new Date("2022-01-01"), new Date("2023-01-01")]