본문 바로가기
BEB/algorithm

[js] 버블정렬

by ddanss 2022. 10. 28.
728x90
  1. 첫 번째 요소가 두 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap)
  2. 두 번째 요소와 세 번째 요소보다 크면, 두 요소의 위치를 바꿉니다. (swap)
  3. 1, 2를 마지막까지 반복합니다. (마지막에서 두 번째 요소와 마지막 요소를 비교)
  4. 1~3의 과정을 한 번 거치게 되면, 가장 큰 요소가 배열의 마지막으로 밀려납니다.
  5. 1~3의 과정을 첫 요소부터 다시 반복합니다.
  6. 5를 통해 두 번째로 큰 요소가 배열의 마지막 바로 두 번째로 밀려납니다.
  7. 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

댓글