알고리즘
[JS] 버블 정렬
grin-quokka
2023. 2. 23. 16:00
버블정렬은 두 개씩 비교하면서 정렬하는 알고리즘입니다. 이 알고리즘은 비교적 간단하지만 큰 데이터셋을 정렬하는 데에는 효율적이지 않습니다. 따라서, 보통은 작은 데이터셋을 정렬하는 데 사용됩니다.
예시는 https://visualgo.net/en/sorting에서 확인할 수 있습니다. 이 웹사이트에서는 버블 정렬을 포함하여 다양한 정렬 알고리즘을 시각적으로 확인할 수 있습니다. 이를 통해 버블 정렬의 작동 방식을 더욱 자세히 이해할 수 있습니다.
버블 정렬을 자바스크립트로 구현한 코드는 아래와 같습니다.
function bubbleSort(arr){
for(let i = arr.length; i > 0; i--){ // 제일 마지막부터 정렬되기 때문에
noSwaps = true
for(let j = 0; j < i - 1; j++){
if(arr[j] > arr[j+1]){ // 두개를 비교해서 왼쪽이 더 크다면
// swap
[arr[j], arr[j+1]] = [arr[j+1], arr[j]]
noSwaps = false
}
}
// 한번도 바꾸지 않았다면 나머지는 이미 정렬되어 있음
if(noSwaps) return arr
}
return arr // 정렬된 배열 리턴
}