버블 정렬(Bubble Sort)

이나영·2021년 10월 19일
0

알고리즘

목록 보기
6/8

1. 발상

① 배열의 index 0을 선택한다.
② 해당 값이 다음 index 값보다 크다면 서로 자리를 바꿔준다.
③ 이걸 다음 index 값이 더 클 때까지 반복한다.
④ 한 숫자에 대하여 반복이 끝났다면 다시 ①번으로 돌아간다.

2. 구체적 예시

[6, 5, 3, 2, 8]
-> [ 5, 6, 3, 2, 8 ]
-> [ 5, 3, 6, 2, 8 ]
-> [ 5, 3, 2, 6, 8 ]
-> [ 3, 5, 2, 6, 8 ]
-> [ 3, 2, 5, 6, 8 ]
-> [ 2, 3, 5, 6, 8 ]

3. 함수

const bubbleSort = nums => {
  while(nums[0] !== Math.min(...nums)) {
    for(let i = 0; i < nums.length - 1; i++) {
      if(nums[i] > nums[i+1]) {
        let stor = nums[i];
        nums[i] = nums[i+1];
        nums[i+1] = stor;
      }
    }
  }

  return nums;
}

0개의 댓글