- min, max, ,
. n/2 - 1 permutations .
- , (
O(n) , O(1) ) - , (
O(n) , O(1) ) - , (
O(n) , O(1) ) - min, max, (0, n-1, n/2)
- : ,
0, , n-1. below , , . above , , . , . , below < above. (O(n) , O(1) )
4, 5: , , , - , .
, pass 1, 2, 3 ,
:
{3, 7, 9, 6, 8, 1, 4, 5, 2}
1, 2, 3: min_pos = 5, max_pos = 2, median_pos = 7, median = 5
swap (0, min_pos) -> {1, 7, 9, 6, 8, 3, 4, 5, 2}
swap (9, max_pos) -> {1, 7, 2, 6, 8, 3, 4, 5, 9}
swap (4, median_pos) -> {1, 7, 2, 6, 5, 3, 4, 8, 9}
below_pos = 0 above_pos = 8. .
- 7 1. - 4 6.
swap (1, 6) -> {1, 4, 2, 6, 5, 3, 7, 8, 9}
- 6 3. 3 5.
swap (3, 5) -> {1, 4, 2, 3, 5, 6, 7, 8, 9}
{1, 4, 2, 3, 5, 6, 7, 8, 9}