: ; _ (0); _ (n -1)
1. , i = _.
2. , j =_.
3. = A [(_ + _) / 2].
4.
4.1. :
A[i ] <
i = i + 1
4.2. :
A[j ] >
j = j - 1.
4.3. A[i ] A[j ].
4.4. i = i + 1.
4.5. j = j - 1.
_ < _.
5. _ < j, _ j,
6. i > _, i _.
7. .
. . , . .
n2, .. (n2), - (n log n). , . , , .
3.4.3. -
, . , .. . : , , (2- 1- 1- 2- ). .
, . , . . , .
.
r - , m - j - . , .
-
1.
1.1. . j+r ≤ n,
1.1.1. m = 1,
a) A[j] > A[j+r ],
A[i ] A[j +r].
1.2.
1.2.1. m = m / 2.
1.2.2. j m r.
1.2.3. j+r+m ≤ n,
j+m m r.
1.2.4. j+m m m - r.
2.
2.1. m = 1.
2.2.
2.3.
2.3.1. j = 1.
2.3.2. j+m ≤n
1) (j,m,m);
2) j = j + 2 m
2.3.3.
m = 2 m.
2.2,
m < n.
- n log n, .. O(n log n). , , .