본문 바로가기

알고리즘

JavaScript 정렬 라이브러리

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