1. 오름차순 정렬
//오름차순
const arr = [3, 5, 2, 6];
function bubble(arr) {
for(let i=0; i<arr.length; i++) {
for(let j=0; j<arr.length -i -1; j++) {
if(arr[j] > arr[j+1]) {
const temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
bubble(arr) // [2, 3, 5, 6]
배열의 arr[j] 번째와 arr[j+1] 번째를 비교해가며 최종적으로는 가장 끝에 가장 큰 수가 위치한다.
한 번 순회한 다음에는 가장 끝까지 반복할 필요가 없으므로 j<arr.length -i 로 필요없는 반복을 제거한다.
//내림차순
const arr = [3, 5, 2, 6];
function bubble(arr) {
for(let i=0; i<arr.length; i++) {
for(let j=0; j<arr.length -i -1; j++) {
if(arr[j] < arr[j+1]) {
const temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
bubble(arr) // [6, 5, 3, 2]
마찬가지로 내림차순은 if문의 조건만 반대로 바꿔주면 된다.
'FRONTEND > JavaScript' 카테고리의 다른 글
[JS] FormData() 생성자에 데이터 추가하는 법 (0) | 2022.08.31 |
---|---|
[JS] Map()의 메서드 종류 (0) | 2022.08.29 |
[JS] arr.forEach() 와 arr.map()의 차이점! (0) | 2022.08.27 |
[JS] 문자열을 배열로 바꾸고 공백 제거하기 (+배열 공백제거) (0) | 2022.08.23 |
[JS] 요소.getBoundingClientRect() 메서드 속성 (0) | 2022.08.21 |