July 28, 2023
버블 정렬은 순서가 잘못된 경우 인접한 요소를 반복적으로 교체하는 방식으로 진행되는 알고리즘입니다.
버블 정렬하는 과정을 간단히 정리하면 다음과 같습니다.
가장 처음 1회전 정렬을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동합니다. 따라서 맨 큰에 있는 자료는 정렬에서 제외되어서 정렬을 수행할때마다 정렬에서 제외되는 데이터가 하나씩 늘어납니다.
배열 [6, 3, 0, 5]을 예를 들어 살펴 보겠습니다.
6은 3보다 크므로 두 개의 위치를 바꾸고, 6은 0보다 크므로 두 개위 위치를 바꾸고, 6운 5보다 크므로 두 개의 위치를 바꿉니다. 가장 큰 요소는 배열의 끝에 배치됩니다.
[3, 0, 5, 6]3은 0보다 크므로 두 개의 위치를 바꾸고, 3은 5보다 작으므로 두 개의 위치를 바꾸지 않습니다. 배열의 가장 끝 요소는 이미 정렬 되어있므로 비교하지 않습니다.
[3, 0, 5, 6]3은 0보다 크므로 두 개의 위치를 바꿉니다. 배열의 가장 끝 - 1 인 요소는 이미 정렬된 되어있므로 비교하지 않습니다.
[0, 3, 5, 6]function bubbleSort(arr) {
let temp;
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if(arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}https://gmlwjd9405.github.io/2018/05/06/algorithm-bubble-sort.html