728x90
- 첫 번째 요소가 두 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap)
- 두 번째 요소와 세 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap)
- 1, 2를 마지막까지 반복합니다. (마지막에서 두 번째 요소와 마지막 요소를 비교)
- 1~3의 과정을 한 번 거치게 되면, 가장 큰 요소가 배열의 마지막으로 밀려납니다.
- 1~3의 과정을 첫 요소부터 다시 반복합니다.
- 5를 통해 두 번째로 큰 요소가 배열의 마지막 바로 두 번째로 밀려납니다.
- 1~3의 과정을 총 n번(배열의 크기) 반복합니다.
const bubbleSort = function (arr) {
let cnt = 0;
for(let i=arr.length-1;i>=0;i--) {
for(let j=0;j<i;j++) {
if(arr[j]>arr[j+1]) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
cnt ++;
}
}
if(cnt===0) break; //advance
}
return arr;
};반응형
'BEB > algorithm' 카테고리의 다른 글
| Toy06 - Sudoku (0) | 2022.11.02 |
|---|---|
| 타일링 tiling (0) | 2022.10.31 |
| [javaScript/자바스크립트]부분집합인지 확인 (0) | 2022.10.27 |
| [JavaScript/자바스크립트] 순열의 순서 (0) | 2022.10.25 |
| [javascript] split의 사용법 (1) | 2022.10.13 |
댓글