왓풀(whatpull)
거품정렬(Bubble Sort) 본문
가장 큰 값이 버블처럼 위로 올라가는 모양을 하게 되는 알고리즘입니다
Pseudocode
- i라는 변수를 통해 배열의 마지막 지점에서 시작지점까지 순회하는 반복문을 만듭니다
- j라는 변수를 통해 시작점부터 i - 1 까지 순회하는 이중 반복문을 만듭니다
- 배열의 j번째 요소가 j + 1번째 요소보다 크면, 두 개의 위치를 바꿉니다 (Swap)
- 만약 Inner Loop 에서 Swap이 발생하지 않는다면, 모두 정렬된 것이므로 반복문을 종료합니다
- 정렬된 요소를 return 합니다
function bubbleSort(array) {
let noSwaps;
for (let i = array.length; i > 0; i--) {
noSwaps = true;
for (let j = 0; j < i - 1; j++) {
if (array[j] > array[j + 1]) {
let temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
noSwaps = false;
}
}
if (noSwaps) break;
}
return array;
}
const array = [33, 22, 11, 2, 3, 4, 5, 21, 20, 31, 19, 17, 13];
const sorted = bubbleSort(array);
console.log(sorted);
'웹개발 > [지식] 알고리즘' 카테고리의 다른 글
두점 사이 거리계산 알고리즘 (0) | 2022.08.03 |
---|---|
브라우저 렌더링 과정 이해하기 (0) | 2022.08.03 |
Comments