Senior · Design · Ordering correctness

Design a comparer for score descending, timestamp ascending and unique ID ascending. Explain how the final key stabilizes ties and how nulls are ordered. Add focused law fixtures rather than assuming a successful sort proves comparator correctness.

Think through your answer before opening the explanation.

Coding interviews

Reveal answer and reasoning

A lexicographic comparator should compare one field at a time and return as soon as a nonzero result appears. Reverse a comparison by swapping operands rather than negating an arbitrary result. A final unique ID removes ambiguous ties, while null placement and case rules remain explicit parts of the ordered-key contract.

The explicit law harness takes O(k cubed) time for k selected values and constant auxiliary state, which is appropriate for a small diagnostic fixture rather than a sorting algorithm. Passing these finite tests is evidence, not a proof for every custom type or combination of nullable values. Using x minus y, inconsistent null placement or culture-dependent text rules can violate an intended ordering contract.

A comparator must also agree with equality classes expected by the consuming collection. Random examples alone can miss boundary failures, so retain extremes and equal values.

A convincing interview answer treats comparator laws as correctness requirements and uses boundary fixtures to challenge them. It explains the exact one-hundred-fifty check count and why minimum-minus-maximum produces the wrong sign under unchecked arithmetic. It then distinguishes a finite test from a general proof and a static key from a key that changes inside a collection. Senior design discussion should focus on one coherent total order, explicit null semantics and deterministic secondary keys.

Short syntax is useful only after those properties are secure; a subtraction-based one-liner can violate them while looking deceptively simple.

What a strong answer covers

  • A lexicographic comparator should compare one field at a time and return as soon as a nonzero result appears.
  • The explicit law harness takes O(k cubed) time for k selected values and constant auxiliary state, which is appropriate for a small diagnostic fixture rather than a sorting algorithm.
  • Using x minus y, inconsistent null placement or culture-dependent text rules can violate an intended ordering contract.

Common pitfall

Using x minus y, inconsistent null placement or culture-dependent text rules can violate an intended ordering contract. A comparator must also agree with equality classes expected by the consuming collection. Random examples alone can miss boundary failures, so retain extremes and equal values.

Follow-up questions

  1. Create a nontransitive cyclic order for three named values and make the triple checks fail. Hint: a compares before b, b before c and c before a cannot form an ordinary total order.
  2. What fails if a key used by an ordered collection mutates after insertion?

Self-review

Choose what to revisit. These marks are your own assessment and are separate from lesson completion.

Primary references

Open lesson and code ↗

← All interview questions