рдЖрдЬ рд╣рдмреЗрд░рд╛
рдореЗрдВ рдПрдХ рдЦрдВрдб рдореЗрдВ рдПрдХ рдЦрдВрдб рдкрд░ рдиреНрдпреВрдирддрдо (рдЕрдзрд┐рдХрддрдо) рдореВрд▓реНрдп рдХреА рдЦреЛрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк
рд▓реЗрдЦ рдерд╛ред рдЪреВрдВрдХрд┐ рд▓реЗрдЦ рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд┐рдХрд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕рд╛рде рдХреБрдЫ "рд╡рд┐рд╢реЗрд╖" рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рд░рдгреА рдореЗрдВ рдПрдХ рдФрд░ рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдХреЛ рд╕рд░рдгреА рдореЗрдВ k-th рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред K-th рддрддреНрд╡ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ (рдпрд╛ рдмрд░рд╛рдмрд░) рд╢реЗрд╖ рддрддреНрд╡реЛрдВ рдХреЗ Nk рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рд╣реИ (рдЬрд╣рд╛рдБ N рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ)ред
Kth рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдЖрдорддреМрд░ рдкрд░ рдЫрдБрдЯрд╛рдИ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрддреНрд╡ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐ N рддрддреНрд╡реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдФрд░ kth рдХреЛ рдЪреБрдирдирд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╣рдо рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рдардХреЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рддреНрд╡рд░рд┐рдд рд╕реЙрд░реНрдЯ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВред рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рддрддреНрд╡ x рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рддрддреНрд╡ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рддрддреНрд╡ [i]> x рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рддрдм рддрдХ рджрд╛рдИрдВ рдУрд░ рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рддрддреНрд╡ [j] <x рдирд╣реАрдВ рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рджреЛ рдРрд╕реЗ рддрддреНрд╡ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рддрдХ рд╕реНрдХреИрдирд┐рдВрдЧ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ i, j рд╕рд░рдгреА рдХреЗ рдмреАрдЪ рдореЗрдВ рдХрд╣реАрдВ рдмрд░рд╛рдмрд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдРрд╕рд╛ рд╕рд░рдгреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдИрдВ рдУрд░ рдореЗрдВ рддрддреНрд╡ <= x рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рджрд╛рдИрдВ рдУрд░ рддрддреНрд╡> = x рд╣реЛрддреЗ рд╣реИрдВред рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдкрдХреНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред (
рдХреБрд╢рд▓ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ )ред
рддреНрд╡рд░рд┐рдд рдЫрдБрдЯрд╛рдИ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреГрдердХреНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рдВрдЫрд┐рдд (kth) рддрддреНрд╡ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддреА рд╣реИред
рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ, рдПрд▓ = 1 рдФрд░ рдЖрд░ = рдПрди рдХреЗ рд╕рд╛рде рдкреГрдердХреНрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдкреВрд░реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдкреГрдердХреНрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдФрд░ рдПрдХ [рдХреЗ] рдХреЛ рдПрдХреНрд╕ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ i, j рдХреЗ рдорд╛рди рдРрд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ
рдПрдХ [h] <x рд╕рднреА h <i рдХреЗ рд▓рд┐рдП
рдПрдХ [рдПрдЪ]> рдПрдХреНрд╕ рд╕рднреА рдПрдЪ> рдЬреЗ рдХреЗ рд▓рд┐рдП
рдореИрдВ> рдЬреЗ
рдпрд╣рд╛рдВ рддреАрди рдорд╛рдорд▓реЗ рд╕рдВрднрд╡ рд╣реИрдВ:
тАв x рдХрд╛ рд╡рд┐рднрд╛рдЬрди рдореВрд▓реНрдп рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдирд┐рдХрд▓рд╛ред рдирддреАрдЬрддрди, рджреЛ рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рдХреА рд╕реАрдорд╛ рдХрд╢реНрдореАрд░ рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдореВрд▓реНрдп рд╕реЗ рдХрдо рд╣реИред рдлрд┐рд░ рдкреГрдердХреНрдХрд░рдг рдСрдкрд░реЗрд╢рди рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП [i] ... рдПрдХ [R]ред

тАв рдЪрдпрдирд┐рдд x рдорд╛рди рдмрд╣реБрдд рдмрдбрд╝рд╛ рдерд╛ред рдлрд┐рд░ рдЬреБрджрд╛рдИ рдСрдкрд░реЗрд╢рди рдХреЛ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП [рдПрд▓] ... рдПрдХ [рдЬреЗ]ред

тАв рддрддреНрд╡ [k] рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╕рд░рдгреА рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдореВрд▓реНрдп рд╣реИред

рдХреЗрд╕ 3 рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рддрдХ рдЬреБрджрд╛рдИ рдСрдкрд░реЗрд╢рди рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЪрдХреНрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдореИрдВ рдкрд╛рд╕реНрдХрд▓ рдХреЗ рд▓рд┐рдП рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореЗрд░реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рд╣реИ):
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрдЬреЗрдВ ( k : рдкреВрд░реНрдгрд╛рдВрдХ ) ;
- рд╡рд░
- рдПрд▓ , рдЖрд░ , рдЖрдИ , рдЬреЗ : рдкреВрд░реНрдгрд╛рдВрдХ ;
- рдбрдмреНрд▓реНрдпреВ , рдПрдХреНрд╕ : рдкреВрд░реНрдгрд╛рдВрдХ ;
- рд╢реБрд░реВ рдХрд░рдирд╛
- рдПрд▓ : = 1 ; рдЖрд░ : = рдПрди ;
- рдЬрдмрдХрд┐ рдПрд▓ <рдЖрд░ - 1 рдХрд░рддреЗ рд╣реИрдВ
- рд╢реБрд░реВ рдХрд░рдирд╛
- x : = [ рдП ] ;
- рдореИрдВ : = рдПрд▓ ;
- j : = R ;
- рджреЛрд╣рд░рд╛рдПрдВ
- рдЬрдмрдХрд┐ рдПрдХ [ i ] <x рдХрд░рддреЗ рд╣реИрдВ
- i : = i + 1 ;
- рдЬрдмрдХрд┐ x < [ j ] рдХрд░рддреЗ рд╣реИрдВ
- j : = j - 1 ;
- рдЕрдЧрд░ рдореИрдВ < = j рддрдм
- рд╢реБрд░реВ рдХрд░рдирд╛
- w : = рдПрдХ [ i ] ;
- рдПрдХ [ i ] : = рдПрдХ [ рдЬреЗ ] ;
- рдПрдХ [ рдЬреЗ ] : = рдбрдмреНрд▓реНрдпреВ ;
- i : = i + 1 ;
- j : = j - 1 ;
- рдЕрдВрдд ;
- UNTIL i> j ;
- рдЕрдЧрд░ j <k
- рдПрд▓ : = рдореИрдВ ;
- рдЕрдЧрд░ k <i
- рдЖрд░ : = рдЬреЗ ;
- рдЕрдВрдд ;
- рдЕрдВрдд ;
рдпрджрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдФрд╕рддрди рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЬрди рд╕рд░рдгреА рдХреЗ рдЙрд╕ рднрд╛рдЧ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рджреНрд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдореВрд▓реНрдп рд╕реНрдерд┐рдд рд╣реИ, рддреЛ рддреБрд▓рдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ N + N / 2 + N / 4 + ... + 1 = 2N рд╣реЛрдЧреАред рдпрд╣ рдордзреНрдпрд╕реНрдереЛрдВ рдФрд░ рдЕрдиреНрдп рдорд╛рддреНрд░рд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдкрд░ рдЗрд╕рдХреА рд╢реНрд░реЗрд╖реНрдарддрд╛ рднреА рдмрддрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЛ рдЫрд╛рдВрдЯрдирд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╛рдж рдореЗрдВ kth рддрддреНрд╡ рдХрд╛ рдЪрдпрди рд╣реЛрддрд╛ рд╣реИ (рдЬрд╣рд╛рдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ N * log (N) рдХреЗ рдХреНрд░рдо рдХрд╛ рд╣реЛрддрд╛ рд╣реИ)ред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред