문제
버블 정렬
N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요.
정렬하는 방법은 버블정렬입니다.
- 입력예제
6
13 5 11 7 23 15
- 출력예제
5 7 11 13 15 23
function solution(arr) {
let answer = arr;
for(let i = 0; i < arr.length-1; i++){
for(let j = i; j < arr.length; j++){
if(arr[j] > arr[j+1]){
let tmp = arr[j];
arr[j] = arr[j+1]
arr[j+1] = tmp
}
}
}
return answer;
}
let a = [13, 5, 11, 7, 23, 15];
console.log(solution(a));
function solution(arr) {
let answer = arr;
for(let i = 0; i < arr.length-1; i++){
for(let j = i; j < arr.length-i-1; j++){
if(arr[j] > arr[j+1]){
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
}
}
}
return answer;
}
let a = [13, 5, 11, 7, 23, 15];
console.log(solution(a));
선택정렬과 버블정렬은 비슷해보이지만 선택정렬은 버블정렬과 다르게 N번의 교환을 하지 않는다.
매번 사이클마다 한 번의 교환만 함으로 선택정렬이 더 나은 방법이다. 아래 블로그에서 잘 정리가 돼있으므로 참고
https://velog.io/@minji0801/버블정렬-vs-선택정렬-vs-삽입정렬-차이-제대로-알고가자