버블정렬

chaeem·2021년 8월 8일
0

JS

목록 보기
5/6
post-thumbnail

버블 정렬의 개념과 이것을 통해 배열을 오름차순으로 정리하는 코드를 js로 구현해보고자 한다.

버블 정렬은 데이터를 2개씩 묶어서 비교한뒤 더 큰수가 오른쪽으로 가도록 정렬하는 방식이다. 그림으로 표현하면 아래와 같다.

🔼 출처: https://reactgo.com/bubble-sort-algorithm-javascript/

버블 정렬을 JS로 표현해주기 위해서는 for에 if조건문을 넣어 임시 배열 역할을 하는 변수를 선언해 줘야한다. 코드로 표현하면 아래와 같다.

let arr = [5,2,3,4,1];
//12345 출력 버블 정렬
function bubble(arr){
 for(i=0; i < arr.length-1; i++){
     for(j=0; j < arr.length-i; j++){
         if(arr[j] > arr[j+1]){
             let temp =arr[j];
             arr[j] = arr[j+1];
             arr[j+1] = temp;
         }
     }
 }
}
bubble(arr);
console.log(arr); 

위에 쓴 코드 중 if문 조건에대해 헷갈리지 않게 정리 하고자 한다.

if(arr[j] > arr[j+1]){
             let temp =arr[j];
             arr[j] = arr[j+1];
             arr[j+1] = temp;

예를 들어서, 이런 배열이 있다고 가정해보자

위 코드에 직접 숫자를 넣어 표현해보면,

let temp = 5;
arr[0] = arr[1] // 5 = 3 -> '='은 오른쪽을 왼쪽에 넣는다는 의미!
arr[0] = 3 -> 위치가 변경된걸 알 수 있음
arr[1] = temp //5 -> 만약 배열을 temp를 선언해주지 않았다면, arr[0]의 값이 저장될 공간이 없기 때문에 버블정렬이 일어날 환경이 만들어지지 않는다!
이런식으로 for에 해당하는 조건 을 따라서 if문이 반복되면

이와같이 오름차순으로 버블정렬이 실행된다.

profile
FE개발 공부중

0개의 댓글