const bubbleSort = (array) => {
let noSwaps = true; // 왼쪽 값이 오른쪽 값보다 작다면 swap을 하지 않는다
for (let i = array.length; i > 0; i--) {
noSwaps = true;
for (let j = 0; j < i - 1; j++) {
if (array[j] > array[j + 1]) {
[array[j], array[j + 1]] = [array[j + 1], array[j]];
noSwaps = false;
}
}
if (noSwaps) break;
}
return array;
};
console.log(bubbleSort([3, 1, 56, 7, 8, 10, -1])); // [-1, 1, 3, 7, 8, 10, 56]
시간복잡도 | O(N) |
---|---|
Best | O(N) |
Average | O(N^2) |
Worst | O(N^2) |