sort
-
[sort] Array.prototype.sort()개발/Javascript 2021. 2. 16. 00:28
이 함수는 원본을 바꿉니다. 복사본이 만들어지지 않는다는 점을 유의해야 합니다. 매개변수로 compareFunction을 넣어주지 않으면 각 요소를 문자열로 바꾼 뒤에 비교하여 정렬합니다. 9와 80을 정렬하면 80이 9보다 먼저 나오게 됩니다. 숫자로 정렬하고 싶다면 compareFunction을 넣어줘야 합니다. compareFunction의 반환값에 따라서 정렬됩니다. compareFunction(a, b)이 0보다 작은 값을 반환하면 a를 b보다 낮은 색인으로 정렬합니다. compareFunction(a, b)이 0을 반환하면 서로에 대해 변경하지 않습니다. compareFunction(a, b)이 0보다 큰 경우 b를 a보다 낮은 색인으로 정렬합니다. b가 먼저 옵니다.
-
정렬 순서 바꾸기개발/자바 2020. 3. 12. 19:08
Collections.sort()와 Arrays.sort()의 기본 정렬 기준은 오름차순이다. 숫자는 물론이고 문자열에 대해서도 마찬가지이므로 사전 순서로 정렬된다. "abc"는 "acc"보다 앞선다. 내림차순을 해야 할 때는 무언가 바꿔줘야 한다. 값이 중복될 때는 추가적인 기준을 만들 수 있다. public class Car { String name; intPS; double zeroToHundred; Car(String name, int PS, double zeroToHundred) { this.name = name; this.PS = PS; this.zeroToHundred = zeroToHundred; } String getName() { return name; } int getPS() { re..
-
[간단 정리] 합병 정렬알고리즘/프로그래머스 2019. 11. 28. 17:21
* 오름차순 기준입니다 이름에서 알 수 있듯이 합병의 과정에서 데이터가 정렬되는 알고리즘이다. 합병하기 위해선 분할을 해야겠지? 합병 정렬은 분할 정복 알고리즘에 속한다. 연결 리스트로 구현하면 퀵 정렬을 포함한 어느 정렬 알고리즘보다 효율이 좋다고 하지만 배열로 공부했기 때문에 여기에선 배열을 사용한다. 최소 단위까지 분할을 하고 나서 합병하면서 대소를 비교해 정렬한다. 분할한다고 해서 매번 그 과정에 배열을 진짜로 나누진 않는다. 인덱스를 가지고 구간을 분할하며, 합병할 때 배열이 등장한다. 주어진 배열에 left, mid, right가 있을 때 분할하는 범위는 left ~ mid와 mid+1 ~ right이다. 나눠서 수행하며 재귀호출로 분할할 수 없을 때까지 분할한다. 즉 마지막까지 분할되면 왼쪽..