inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

2. 버블정렬

거의 다 정렬이 된경우!

256

YEONGHUN KO
0

거의 다 정렬이 된 경우엔 swap 변수를 사용해서 교체를 최소화 할 수 있습니다!

 function bubbleSort(arr) {
        var noSwaps;
        for (var i = arr.length; i > 0; i--) {
          noSwaps = true;
          for (var j = 0; j < i - 1; j++) {
            // swap!
            // console.log(arr, arr[j], arr[j + 1]);
            if (arr[j] > arr[j + 1]) {
              let temp = arr[j];
              arr[j] = arr[j + 1];
              arr[j + 1] = temp;
              noSwaps = false;
              // console.log('Swap');
            }
          }
          // console.log('one loop pass through');
          if (noSwaps) break;
        }
        return arr;
      }

정렬이 된경우 안쪽 포문에서 swap=false에 걸리지 않게 되고 그럼 swap이 true인 상태가 유지되므로 바깥쪽 포문이 break되면서 불필요한 loop를 중지하게 됩니다.

답변 0