void sort(int[] A, int lo, int hi) //@requires 0 <= lo && lo <= hi && hi <= \length(A); //@ensures is_sorted(A, lo, hi); { for (int i = lo; i < hi; i++) //@loop_invariant lo <= i && i <= hi; //@loop_invariant is_sorted(A, lo, i); //@loop_invariant le_segs(A, lo, i, A, i, hi); { int min = find_min(A, i, hi); swap(A, i, min); } }