정렬 계약

비교 함수보다 정렬 계약을 먼저 만든다

복합 정렬은 구현 문법보다 규칙의 완전성에서 품질이 갈립니다. 키 추출, 결측치, 동점, 안정성, 반례를 순서대로 고정하면 화면마다 다른 결과를 줄일 수 있습니다.

key

비교 키 추출

점수, 날짜, 이름처럼 정렬에 실제로 쓰는 값을 먼저 분리합니다.

normal

예외값 정규화

`None`, 공백, 숫자 문자열, 대소문자 정책을 키 함수에 반영합니다.

tie

동점 기준

같은 1차 키가 많을 때 입력 순서, 가입일, ID 중 하나를 고정합니다.

stable

안정성 요구

다단계 정렬을 쓸 때 이전 정렬 결과가 보존되어야 하는지 확인합니다.

cost

키 생성 비용

변환 비용이 크면 정렬 전에 키를 한 번 계산해 재사용합니다.

numeric

숫자 문자열

["10", "2", "4"]

문자열 순서가 아니라 숫자 순서로 나오는지 확인합니다.

missing

결측치 섞임

[90, None, 80]

빈 값이 앞인지 뒤인지 예외 없이 재현되는지 봅니다.

same score

동점 다량

A:90, B:90, C:90

2차 키 또는 입력 순서 보존이 요구와 일치하는지 검증합니다.