춘식이를 좋아하는 개발자

[Algorithm] BubbleSorting (버블정렬) 본문

Study/JavaScript

[Algorithm] BubbleSorting (버블정렬)

NaChoon 2022. 4. 22. 11:32
728x90

버블정렬을 알아보자!

위의 그림과 같이 버블정렬은 각 회전마다 서로 붙어있는 index를 비교해 더 큰 숫자가 뒤로 가게 for문을 돌리는 방법이다.

코드를 알아보자!

// 자바스크립트 or 자바 선택해서 풀 것!
// 버블정렬을 이용하여 오름차순으로 정렬하고 총 몇회전 했는지 알아내시오.
let array = [1, 10, 4, 3, 5];
let count = 0; //총 몇회전 했는지 알아내는 변수

// Bubble sort funtion
function bubble(array){
    var len = array.length;
    for(var i=0;i<len-1;i++){
        for(var j=0;j<len-i-1;j++){
            var tmp=0;
            if(array[j]>array[j+1]){
                tmp = array[j];
                array[j]=array[j+1];
                array[j+1]=tmp;
                count++;
            }
        }
    }
    return array;
}
var array1 = bubble(array);
console.log(array1);
console.log(count);


function bubbleResult(array){
    let len = array.length;
    let isSwap = null;
    for(let i=len; i>0;i--){
        isSwap = false;
        for(let j=0;j<(i-1);j++){
            let tmp=0;
            if(array[j]>array[j+1]){
                tmp = array[j];
                array[j]=array[j+1];
                array[j+1]=tmp;
                count++;
                isSwap = true;
            }    
        }
        if(!isSwap) break; // for문 닫기
    }
    return array;
}
var array2 = bubbleResult(array);
console.log(array2);
console.log(count);

 

728x90

'Study > JavaScript' 카테고리의 다른 글

[Algorithm] Sellect Sorting (선택정렬)  (0) 2022.04.22