[Algorithm] 버블정렬 BubbleSort - JavaScript

ckxo·2022년 10월 11일
0

Algorithm

목록 보기
1/1

버블정렬

버블정렬은 위와 같은 방식으로 배열의 길이만큼 반복되어 진행된다.

i번째 수와 그 다음 수인 i+1번째 수의 크기를 비교하여, 더 큰 숫자가 뒤에 오게 한다.
위 표를 보면, 빨간 숫자 중 비어있는 칸이 있는데, 이 칸은 크기 비교가 진행되었을 때 i번째 수가 더 작아 두 수의 변화가 없다는 의미이다.

그리고 파란 숫자는 0번부터 배열의 길이-1번까지 숫자비교를 한 번 끝마쳤을 때의 배열이다.
마지막 수에 가장 큰 수인 9가 온 것을 확인할 수 있다.

코드

let id=[9,0,1,8,7,2,5,4,6,3];
let temp=0;
for(let i=0; i<id.length; i++){
    for(let j=0; j<id.length-1-i; j++){
        if(id[j]>id[j+1]){
            temp=id[j];
            id[j]=id[j+1];
            id[j+1]=temp;
        }
    }
    console.log(id);
}

두 번째 for문에서 id.length-1-i까지 하는 이유를 알아보자.

두번째 for문이 진행될 때마다 console.log로 출력해주었다.
가장 끝에 있는 숫자가 큰 숫자로 채워져 나가는 것을 볼 수 있다.

처음 for문이 돌 때 끝 숫자 = ~9
그 다음은 = ~89
그 다음은 = ~789

이런 식으로 진행이 되기 때문에, 두 번째 for문은 id.length-1-i까지 진행해주도록 한다.

id.length나 id.length-1까지로 해주어도 코드는 돌아가지만 이미 정렬된 숫자까지 또 확인할 필요는 없기 때문에 id.length-1-i까지 하는 것이 좋다.

0개의 댓글