function selectionSort(a, cmp) {
for (let i = 0; i < a.length; i++) {
let m = i;
for (let j = i + 1; j < a.length; j++) {
if (cmp(a[m], a[j]) > 0) {
m = j;
}
}
let t = a[i];
a[i] = a[j];
a[j] = t;
}
return a;
}
그리고 compare 함수가 저런 형식을 취할 때 좋은 점은 compare 함수 호출 한번과
비교 연산자를 일대일 대응 시킬 수 있다는 겁니다.
a == b; cmp(a, b) == 0
a != b; cmp(a, b) != 0
a < b; cmp(a, b) < 0
a > b; cmp(a, b) > 0
a <= b; cmp(a, b) <= 0
a >= b; cmp(a, b) >= 0