Data Structure & Algorithm
[알고리즘-JS] 오름차순 정렬 - sort(), 선택 정렬, 버블 정렬
fnow
2022. 5. 4. 18:41
반응형
배열을 오름차순으로 정렬할 수 있는 방법은 여러 가지가 있다. sort() 메서드를 사용하는 방법부터, 다양한 정렬 알고리즘까지 정리해보자.
1. sort()
function solution(arr) {
let answer = arr;
arr.sort((a, b) => a - b);
return answer;
}
2. 선택 정렬
선택 정렬은 한 요소를 나머지 요소와 하나씩 비교하며 자리를 교체하는 알고리즘이다. 이중 for 문을 사용한다.
function solution(arr) {
let answer = arr;
for (let i = 0; i < arr.length; i++) {
let idx = i;
for (let j=i+1; j < arr.length; j++) {
// 더 작은 값이 나타나면 해당 값의 인덱스를 idx에 넣어준다.
if (arr[j] < arr[idx]) idx = j;
}
// 현재 i 값과 j의 자리 바꾸기
[arr[i], arr[idx]] = [arr[idx], arr[i]];
}
return answer;
}
3. 버블 정렬
버블 정렬은 인접한 두 요소를 비교하며 정렬하는 알고리즘이다.
첫 순환이 완료되면 맨 뒤의 값이 결정된다.
다음 순환에서는 결정된 값을 제외하고 순환한다.
function solution(arr) {
let answer = arr; // 얕은 복사
for (let i = 0; i < arr.length; i++) {
// 뒤부터 값이 결정되므로 i 만큼 계속 길이를 줄인다.
for (let j = 0; j < arr.length-1-i; j++) {
// 버블 정렬
if (arr[j] > arr[j + 1]) {
// 자리 바꾸기
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
}
}
}
return answer;
}
반응형