20.12.19 bubbleSort_Algorithms
정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다.
입력
출력
주의사항
입출력 예시
let output = bubbleSort([2, 1, 3]);
console.log(output); // --> [1, 2, 3]
const bubbleSort = function (arr) {
/*
n번째 정렬 회차가 끝나면 뒤에서 n번째 자리의 데이터가 확정된다.
이중for 문을 사용해야하는데
첫번째 반복은 arr.length까지
두번째 반복은 arr.length -1 -i 까지(두번째는 마지막까지 볼 필요는 없으니까 마지막에서 두번째 까지만 보는 것)
1.(잠깐 위치를 바꾸기 위한 장소) swap 변수 선언
2.(반복문)버블 정렬 알고리즘을 반복시키자.
(만약 arr[j]가 그 다음 것보다 크면) swap에 데이터를 저장해놓고, arr[j]는 그 다음것으로.
그 다음것은 swap(전 데이터가 저장되어있는)으로 바꾼다.
(만약 스왑이 없으면.undefined라면) 정렬이 다 되어있다는 뜻이므로 반복문 종료.
3.arr(정렬된) 리턴
*/
let swap;
for( let i = 0; i < arr.length; i++ ) {
for( let j = 0; j < arr.length -1 -i; j++ ) {
if( arr[j] > arr[j+1] ) {
swap = arr[j];
arr[j] = arr[j+1];
arr[j+1] = swap;
}
}
if( !swap ) {
break;
}
}
return arr;
};