본문 바로가기

Javascript/알고리즘

[Algorithm] Tim sort (sort 알고리즘 중 하나)

오름차순

array.slice().sort((a, b) => a - b);
//[1, 2, 3, 4, 5, 6, 7, 8, 9]

slice를 하는 이유는 원본을 수정하지 않기위해.

 

내림차순

array.slice().sort((a, b) => b - a);
//[9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

문자를 정렬하는 방법

arr = ['apple', 'orange', 'grape', 'banana', 'kiwi'];
arr.slice().sort((a, b) => a[0].charCodeAt() -b[0].charCodeAt()) //오름차순
//첫번째 글자의 코드 넘버를 비교


arr.slice().sort((a, b) => b[0].charCodeAt() -a[0].charCodeAt()) //내림차순

arr.slice().sort((a, b) => a.localeCompare(b)) //사전순으로 정렬 //오름차순
//첫번째 글자는 같고 두번째 글자는 다를 때.

arr.slice().sort((a, b) => b.localeCompare(a)) // 내림차순

첫번째 글자의 코드 넘버를 서로 비교.

 

 

날짜를 정렬하는 방법

[new Date(2022, 0, 1), new Date(2023, 0, 1)].sort((a, b) => a - b)

//wed Jan 01 2022 00:00:00 GMT+0900 (대한민국 표준시) {}
//Fri Jan 01 2023 00:00:00 GMT+0900 (대한민국 표준시) {}

 

 

출처: 제로초님 강의 렛츠기릿 자바스크립트