728x90
JavaScript에서는 배열에 포함된 데이터를 정렬하는 Sort() 함수를 제공
최악의 경우 시간 복잡도 O(NlogN)을 보장
내림차순, 오름차순 등 구체적인 정렬 기준을 설정할 수 있다.
arr.sort(compareFunction);
JavaScript의 정렬 함수에서는 정렬 기준 함수가 사용된다.
두개의 원소 a,b를 입력으로 받는다.
1. 반환 값이 0보다 작은 경우: a가 우선순위가 높아서 앞에 위치
2. 반환 값이 0보다 큰 경우: b가 우선순위가 높아서 앞에 위치
3. 반환 값이 0 인 경우: 순서 변경 없음
1. 오름차순
// 정수에 따른 오름차순 #1
function compare1(a,b){
if(a<b) return -1;
else if(a>b) return 1;
else return 0
}
// 정수에 따른 오름차순 #2
function compare2(a,b){
return a-b
}
2. 내림차순
// 정수에 따른 내림차순 #1
function compare1(a,b){
if(a<b) return 1;
else if(a>b) return -1;
else return 0
}
// 정수에 따른 내림차순 #2
function compare2(a,b){
return b-a
}
3. 정렬 함수 없는 경우 : 유니코드 기준으로 정렬
- 대소문자 구분하지 않으려면 : toUpperCase 사용함
4. 객체에 대해 원하는 기준으로 오름차순 정렬
let arr = [
{name:"홍길동", score:90},
{name:"김철수", score:85},
{name:"박영희", score:97}
];
function compare(a,b){
return b.score - a.score
}
arr.sort(compare)
console.log(arr)
728x90
'알고리즘' 카테고리의 다른 글
프로그래머스 > 2022 KAKAO BLIND RECRUITMENT > 주차 요금 계산 (0) | 2023.04.12 |
---|---|
프로그래머스 > 월간 코드 챌린지 시즌3 > N^2 배열 자르기 (0) | 2023.04.10 |
JavaScript 정렬(Sorting) 알고리즘: 선택 정렬, 버블 정렬, 삽입 정렬, 병합 정렬 (0) | 2023.04.07 |
프로그래머스 > 해시 > 위장 (0) | 2023.04.07 |
프로그래머스 > 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 (0) | 2023.04.04 |