Algorithm 버블(bubble) 정렬

시작하기

버블 정렬은 수열을 정렬하는 알고리즘중 하나입니다.
수열의 오른쪽/왼쪽 끝에 두가지를 두고 좌우에 있는 숫자를 비교합니다.

예제 숫자들: [1, 2, 3, 9, 3, 4, 1, 3, 7, 5]
오른쪽 끝의 5와 7을 비교합니다. or 왼쪽 끝의 1과 2를 비교합니다.
비교한 결과 오른쪽의 숫자가 작으면 왼쪽과 바꿉니다.

[1, 2, 3, 9, 3, 4, 1, 3, 5, 7] 비교를 했으면 다음 오른쪽 끝의 5와 3을 비교합니다.
or 왼쪽끝의 [1, 2, 3, 9, 3, 4, 1, 3, 5, 7] 2와 3을 비교합니다.

[1, 2, 3, 9, 3, 4, 1, 3, 5, 7] 왼쪽의 숫자가 더 작으므로 바꾸지 않습니다.
or 왼쪽끝의 [1, 2, 3, 9, 3, 4, 1, 3, 5, 7] 3과 9를 비교합니다.

이러한 작업을 계속 진행합니다.
일련의 작업으로 가장작은 숫자가 왼쪽끝으로 이동하면 정렬이 끝난것으로 간주하고
오른쪽끝부터 다시 시작합니다.
끝까지 모두 정렬이 끝나는 과정을 버블 정렬이라고 합니다.

Javascript

버블정렬을 javascript로 구현해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const numbers = [1,32,3123,67,34,21,22,321];
const bubbleSort = (numberArray) => {
let length = numberArray.length;
let i, j, temp;
for (i = 0; i < length - 1; i++) {
for (j = 0; j < length - 1 - i; j++) {
if (numberArray[j] > numberArray[j + 1]) {
temp = numberArray[j];
numberArray[j] = numberArray[j + 1];
numberArray[j + 1] = temp;
}
}
}
return numberArray;
}

bubbleSort(numbers);
Share