Overview
Property | Value |
---|---|
Best Case | |
Worst Case | |
Avg. Case | |
Aux. Memory | |
Stable | No |
Adaptive | No |
Loop Invariant
Consider loop invariant given by
A[0:i-1]
is a sorted array of thei
least elements ofA
.
We prove maintains the requisite properties:
- Initialization
- When
i = 0
,A[0:-1]
is an empty array. This trivially satisfies .
- When
- Maintenance
- Suppose holds for some
0 ≤ i < n - 1
. ThenA[0:i-1]
is a sorted array of thei
least elements ofA
. Our inner loop then finds the smallest element inA[i:n]
and swaps it withA[i]
. ThereforeA[0:i]
is a sorted array of thei + 1
least elements ofA
. At the end of the iteration,i
is incremented meaningA[0:i-1]
still satisfies .
- Suppose holds for some
- Termination
- On termination,
i = n - 1
andA[0:n-2]
are then - 1
least elements ofA
in sorted order. But, by exhaustion,A[n-1]
must be the largest element meaningA[0:n-1]
, the entire array, is in sorted order.
- On termination,
Bibliography
- Thomas H. Cormen et al., Introduction to Algorithms, Fourth edition (Cambridge, Massachusett: The MIT Press, 2022).