Q1. How does empirical data confirm an O(n²) bound?
Doubling n should approximately quadruple the step count. Plotting steps / n² against n should give a roughly flat line. If the ratio drifts upward, hidden log factors are present.
Q2. Could there be a constant factor we miss?
Yes — Big-O ignores constants. Empirical timing can't reveal asymptotic equivalence vs huge multiplicative constants. But the shape (linearity of steps/n²) is the asymptotic claim and is what we test.
Q3. What would fail this empirical check?
If the algorithm secretly took O(n²·log n), you'd see slight upward curvature in steps/n² as n grows. If it were O(n³), steps/n² would grow linearly. If it were O(n log n), steps/n² would decrease.
Q4. What's the relationship between this and the actual proof?
Empirical profiling is sanity-checking, not proof. A formal Θ(n²) proof requires both an upper bound (here, n/2 pairs × O(n) per pair) and a lower bound (the crossing-sequence argument). Empirics validate the upper bound; the lower bound requires combinatorial analysis.