バブルソートアルゴリズム
隣接する要素を比較して交換を繰り返すシンプルなソートアルゴリズムを学ぼう
O(n²)
時間計算量
O(1)
空間計算量
初級
難易度
ソート
カテゴリ
🔧 実行設定
配列:
[64, 34, 25, 12, 22, 11, 90]
要素数:
7
🫧
アルゴリズムを実行してください
左側の設定パネルから条件を設定し、「バブルソート実行」ボタンを押してください
💻 実装例(JavaScript)
function bubbleSort(arr) {
const n = arr.length;
const sortedArray = [...arr]; // 元の配列を変更しない
for (let i = 0; i < n - 1; i++) {
let hasSwapped = false;
// 各パスで隣接要素を比較
for (let j = 0; j < n - i - 1; j++) {
if (sortedArray[j] > sortedArray[j + 1]) {
// 交換
[sortedArray[j], sortedArray[j + 1]] =
[sortedArray[j + 1], sortedArray[j]];
hasSwapped = true;
}
}
// 交換がなければ既にソート済み
if (!hasSwapped) {
break;
}
}
return sortedArray;
}
// 使用例
const unsortedArray = [64, 34, 25, 12, 22, 11, 90];
const sortedArray = bubbleSort(unsortedArray);
console.log(sortedArray); // [11, 12, 22, 25, 34, 64, 90]