рдмрдХреНрд╕реЗ, рдпрд╛ рдХреЙрдореНрдкреИрдХреНрдЯ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рдмрд┐рд▓реНрд▓рд┐рдпрд╛рдБ

рдЫрд╡рд┐


рдпрджрд┐ рдЦреЛрдЬ рдЯреНрд░реА рдкреВрд░реЗ RAM рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд░реВрдо рдореЗрдВ рдкрдбрд╝реЛрд╕реА рд░реИрдХ рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдЙрд▓рдЯреЗ рд╕рдВрд╕рд╛рдзрди-рднреВрдЦреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдлреЛрди рдореЗрдореЛрд░реА рдлреБрд▓" рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдВрдЯреЗрдирд░ рдХрд╛ рдХреЗрд╡рд▓ рдЖрдзрд╛ рд▓реЛрдб рд╣реИ?


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреНрдпрд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдХрдо рдЬрдЧрд╣ рд▓реЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╛рдпрджреЗ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВ? рддрд╛рдХрд┐ рд╣реИрд╢ рдЯреЗрдмрд▓ рддрдХ рдкрд╣реБрдВрдЪ рддреЗрдЬ рд░рд╣реЗ, рдФрд░ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдЕрдкрдиреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦреЗред рд╣рд╛рдБ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдЗрд╕рдХреЗ рд▓рд┐рдП, рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди рдХреА рджрд┐рд╢рд╛ "рд░рд╕реАрдж рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ" рджрд┐рдЦрд╛рдИ рджреАрдВ, рдЬреЛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдХреЙрдореНрдкреИрдХреНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЦреЛрдЬ рдХрд░рддреА рд╣реИрдВред рдпрд╣ 80 рдХреЗ рджрд╢рдХ рдХреЗ рдЕрдВрдд рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрднреА рдпрд╣ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдФрд░ рдЙрдЪреНрдЪ рднрд╛рд░ рдХреА рдорд╣рд┐рдорд╛ рдореЗрдВ рд╣реИред


рдЗрд╕ рдмреАрдЪ, рд╣реИрдмрд░ рдкрд░ рдПрдХ рдирд╛рдпрдХ рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рддреАрди рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ
[S╔Щks╔к┼Лkt]?


рдХреЙрдореНрдкреИрдХреНрдЯрдиреЗрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдХрд╛ рджрд░рд╡рд╛рдЬрд╛


рддреЛ, рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдХреЙрдореНрдкреИрдХреНрдЯ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рд░рд╕реАрд▓рд╛) рдЕрдЧрд░ рдпрд╣:


  • рдпрд╣ рд╕реВрдЪрдирд╛-рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдХреЗ рдХрд░реАрдм рдХрдИ рдмрд┐рдЯреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗрддрд╛ рд╣реИред
  • рдЗрд╕реЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдирдкреИрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рджреЛрд╖рд░рд╣рд┐рдд рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдХреЙрдореНрдкреИрдХреНрдЯ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡реЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╕реНрдерд┐рддрд┐ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред


рдкрд░рд┐рдЪрд┐рдд, рд░реЗрдЦрд╛рдВрдХрди, рд╣реИрд╢ рдЯреЗрдмрд▓ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ "рдореБрдЦреНрдпрдзрд╛рд░рд╛" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рд╣реИрдВред рдЦреЛрдЬ рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдмрд╛рд▓ рддрддреНрд╡реЛрдВ рдХреЛ рдХрдо рд╕реЗ рдХрдо рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВред рд╡реЗ рд╕рднреНрдп рд╕реНрдерд╛рди рдЦрд╛рддреЗ рд╣реИрдВ: O(MN) рдЬрд╣рд╛рдБ рдПрдордПрдо - рд╕реВрдЪрдХ рдХреА рд▓рдВрдмрд╛рдИ, рдФрд░ рдПрдирдПрди - рдкреЗрдбрд╝ рдореЗрдВ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд▓реЗрдХрд┐рди рд░рд╕реАрд▓рд╛ рдкреЗрдбрд╝ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрдВ рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ 2рдПрди+рдУ(рдПрди)рдПрдирдУрдПрди рдЬреЛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рдХреЗ рдХрд░реАрдм рд╣реИ 2NтИТ2(рд▓реЙрдЧрдПрди)рд▓реЙрдЧрдПрди рд╕реЗ рд▓рдХрдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдирдПрди рдиреЛрдбреНрд╕ред рд╕реВрдЪрдХ рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде M=8 рдмрд╛рдЗрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдЗрд╕рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ O(8N) рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦрддрд╛ рдХреЗ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреНрд░рдо рдореЗрдВ - рдмрд╕ 2N , рдЙрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рдУ(рдПрди)рдУрдПрди - рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдирдЧрдгреНрдп рдореВрд▓реНрдп рдПрдирдПрди ред


рдХреЙрдореНрдкреИрдХреНрдЯ (succinct) рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдмрд┐рдЯ рд╡реИрдХреНрдЯрд░, рдорд▓реНрдЯреАрд╕реЗрдЯреНрд╕, рдкреНрд▓реЗрдирд░ рдЧреНрд░рд╛рдл рдФрд░ рдЕрдиреНрдп рдкрд╕рдВрджреАрджрд╛ рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреБрдЪрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИрдВред рдЕрдХреНрд╕рд░ рд╡реЗ рд╕реНрдерд┐рд░ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдмрд╛рд░ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдмрджрд▓рддреЗ рдирд╣реАрдВ рд╣реИрдВред рдЕрдкрд╡рд╛рдж рд╣реИрдВ - рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рддреНрд╡рд░рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рд░рд╕реАрд▓рд╛-рд╕рдВрд░рдЪрдирд╛рдПрдВред


рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛рдПрдВ рддрдерд╛рдХрдерд┐рдд рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдпрд╣ рдПрдХ рдмрд┐рдЯрдореИрдк (рдмрд┐рдЯрдореИрдк, рдмрд┐рдЯрд╕реЗрдЯ) рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИред рдмрд┐рдЯрдореИрдк рд╕реНрд╡рдпрдВ рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рддрддреНрд╡ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдореЗрдВ рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдПрдХ рд╕реЗрдЯ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ рдмрд┐рдЯ рдорд╛рди 1 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣ 0. рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдЗрдиреЛрдб-рдмрд┐рдЯрдореИрдк ext4, UFS рдФрд░ рдЕрдиреНрдп рдпреВрдирд┐рдХреНрд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдиреЛрдб рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╡реНрдпрд╕реНрдд рд╣реИрдВ рдФрд░ рдЬреЛ рдореБрдлрд╝реНрдд рд╣реИрдВред


рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдбрд┐рдХреНрд╢рдирд░реА рдПрдХ рд╣реА рдмрд┐рдЯрдореИрдк рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рдСрдкрд░реЗрд╢рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рд╣реИ: рд░реИрдВрдХ рдФрд░ рдЪрдпрдиред рдпреЗ рдСрдкрд░реЗрд╢рди рд╣рд╛рдереА рд╣реИрдВ рдЬрд┐рди рдкрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдХреА рд╕рд░рдХрд╛рд░реЗрдВ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИрдВред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рд░реИрдВрдХ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдФрд░ рдЪрдпрди рдПрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рд╣реИ:


  • рд░реИрдВрдХx(i)рд░реИрдВрдХ рдХреЗ рдмрд░рд╛рдмрд░ рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИ x рдЬрд┐рдирдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рдЦрдВрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ [0;i] ред рдХреНрдпреЛрдВрдХрд┐ x - рдмрд┐рдЯ рдХрд╛ рдорд╛рди, рддреЛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ 0 рдпрд╛ 1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • selectx(j) рд░рд┐рдЯрд░реНрди рдЗрдВрдбреЗрдХреНрд╕ рдЬрдЬ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ x ред рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╢реВрдиреНрдп рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рд╣реИред рдЗрд╕рд▓рд┐рдпреЗ $ рдЗрдирд▓рд╛рдЗрди $ j> 0 $ рдЗрдирд▓рд╛рдЗрди $ : рдЧрдгрдирд╛ рдПрдХ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬ рдХреЗ рдмрд░рд╛рдмрд░ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА x ред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдбрд┐рдХреНрд╢рдирд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ 7 рдмрд┐рдЯреНрд╕ рдореЗрдВ рд╕реЗ 4 рд╕реЗрдЯ рд╣реИрдВред рддреЛ рд░реИрдВрдХ1 рдФрд░ select1 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рд▓реЗрдВрдЧреЗ:



рдПрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╢рдмреНрджрдХреЛрд╢ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░реИрдВрдХ1 ред select1 ред


рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдзреНрдпрд╛рди рджреЗрдЧрд╛ рдХрд┐ рдЪрдпрди рд░реИрдВрдХ рдХрд╛ рд╡рд┐рд▓реЛрдо рд╣реИред рдЕрдЧрд░ rank1(5)=4 рддреЛ select1(4)=5 ред


рдХрд┐рд╕реА рдиреЗ рджреЗрдЦрддреЗ рд╣реА рджреЗрдЬрд╛ рд╡реБ рдХреЛ рджреЗ рджрд┐рдпрд╛ рдерд╛ rank1(i) ? рдФрд░ рд╕рднреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдСрдкрд░реЗрд╢рди рд╣реЗрдорд┐рдВрдЧ рд╡рдЬрди рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ - рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдЧреИрд░-рд╢реВрдиреНрдп рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдмрд╛рдЗрдирд░реА рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣реИрдорд┐рдВрдЧ рдХреЗ рд╡рдЬрди рдХреЛ рдкреЙрдкрдХрд╛рдЙрдВрдЯ (рдЬрдирд╕рдВрдЦреНрдпрд╛ рдЧрдгрдирд╛) рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЫреВрдЯреЗ рд╣реБрдП рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд░реИрдВрдХ / рдЪрдпрди рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЧрдгрдирд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рд░реИрдВрдХ0 рдФрд░ select0 0 рдХреЗ рдмрд░рд╛рдмрд░ рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП:



рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рд╢рдмреНрджрдХреЛрд╢ рдФрд░ рдЧрдгрдирд╛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд░реИрдВрдХ0 ред select0 ред


рдПрдХ рдкреЗрдбрд╝ рдХреЛ рдмрд┐рдЯрд┐рдХреЛрдВ рдореЗрдВ рджреЗрдЦрд╛


рд╣рдо рдЗрд╕ рдЬреНрдЮрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ! рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ рдЙрдкрд╕рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рддрд╛рд░ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЦреЛрдЬ рд╕рдВрдХреЗрдд (sjest) рдХреА рдПрдХ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рдЕрдХреНрд╕рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдкреЗрдбрд╝ рдХреЗ succinctization рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЕрддреНрдпрдВрдд рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣реИ рдФрд░ рдЕрдзрд┐рдХрддрдо рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рднреА рдХрд┐рд╢рдорд┐рд╢ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдкреЗрдбрд╝ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╕реВрддреНрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдордЧреНрд░ рддрд╕реНрд╡реАрд░ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреЗ рд╣реИрдВред


рдкреЗрдбрд╝реЛрдВ рдХреЗ рдХреЙрдореНрдкреИрдХреНрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВ:


  • BP (рд╕рдВрддреБрд▓рд┐рдд рдХреЛрд╖реНрдардХ) - рд╕рдВрддреБрд▓рд┐рдд рдХреЛрд╖реНрдардХ рдХреНрд░рдоред
  • рдбреАрдПрдлрдпреВрдбреАрдПрд╕ (рдЧрд╣рд░рд╛рдИ-рдкрд╣рд▓реА рдЕрдирд╛рд░реНрдп рдбрд┐рдЧреНрд░реА рдЕрдиреБрдХреНрд░рдо) - рдЧрд╣рд░рд╛рдИ рдЦреЛрдЬ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдпреВрдирд┐рдЯ-рдПрдирдХреЛрдбреЗрдб рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рдХреНрд░рдоред
  • рдПрд▓рдУрдпреВрдбреАрдПрд╕ (рд╕реНрддрд░-рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рдПрдХрд░реА рдбрд┐рдЧреНрд░реА рд╕реАрдХреНрд╡реЗрдВрд╕) - рд╕реНрддрд░ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдЗрдХрд╛рдИ-рдПрдирдХреЛрдбреЗрдб рдиреЛрдбреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдоред

"рдПрдХрд▓ рдбрд┐рдЧреНрд░реА рд╡рд╛рд▓реЗ рдиреЛрдб" рдХреЗ рд▓рд┐рдП "рдПрдХрд╛рддреНрдордХ рдбрд┐рдЧреНрд░реА" рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреА рд╕рдВрджрд┐рдЧреНрдз рддрд╛рд░реНрдХрд┐рдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреНрдпрд╛ рд╣реИ? рддреЛ рдареАрдХ рд╣реИред рдЗрди рдирд╛рдореЛрдВ рдореЗрдВ рдпреВрдиреЗрд░реА рдбрд┐рдЧреНрд░реА рдХрд╛ рдорддрд▓рдм рд╣реИ, рдЯреНрд░реЗрд▓рд░ рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде, рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд╕рд╛рде рдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдирд╛ред


рдкреЗрдбрд╝реЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдпреЗ рддреАрди рддрд░реАрдХреЗ рддреНрд╡рд░рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдвреВрдВрдвреЗрдВ; рдкрд╣рд▓рд╛ рд╡рдВрд╢ рдЦреЛрдЬреЗрдВ; рдЕрдВрддрд┐рдо рд╡рдВрд╢ рдХреЛ рдЦреЛрдЬреЛ; рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рдЖрд╕рдиреНрди рдиреЛрдбреНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреА рдореМрд▓рд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдФрд░ рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рд╡рд┐рдзрд┐ рд╕реЗ рд╡рд┐рдзрд┐ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред


рдЖрдЗрдП рд╣рдо LOUDS рд╡рд┐рдзрд┐ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реЗрдВ ред рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреНрдп рджреЛ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, LOUDS рдкреЗрдбрд╝реЛрдВ рдиреЗ рдЕрдкрдирд╛ 30 рд╡рд╛рдВ рдЬрдиреНрдорджрд┐рди рдордирд╛рдпрд╛! LOUDS рдкреЗрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧреА рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ O(1) : рдиреЛрдб рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреНрдЮрд╛рдд рдХрд░реЗрдВ; рдЕрдкрдиреЗ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рдмреАрдЪ рдиреЛрдб рдХреЗ рд╡рдВрд╢рдЬ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ (рдкрд╣рд▓рд╛ рд╡рдВрд╢рдЬ, рджреВрд╕рд░рд╛, рдореИрдВ рд╡реЗрдВ, рдЖрджрд┐); рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╡реЗрдВ рд╡рдВрд╢ред LOUDS рдХрд╛ рдиреБрдХрд╕рд╛рди рд╕рдмрдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рднрд╛рд╡реА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдХрдореА рд╣реИред


рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рд╕рд░рд▓ рд╣реИ: рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдореЗрдВ рдЯреНрд░реА рдиреЛрдбреНрд╕ рдФрд░ рд╕рднреА рдореВрд▓реНрдпрд╡рд╛рди рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ, рдФрд░ рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдВред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╕реНрдерд┐рд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рд░реИрдВрдХ / рдЪрдпрди рдХреЗ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рд░реНрдореБрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЪреЗрддрд╛рд╡рдиреА, рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖:



LOUDS рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ред


рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рддреИрдпрд╛рд░ рдХрд░реЗрдВ:


  1. рдкреЗрдбрд╝ рдХреЛ рдирдХрд▓реА рдЬрдбрд╝ рд╕реЗ рдЬреЛрдбрд╝реЛред рд╡рд╣ рдмрд╣реБрдд рдЬрд▓реНрдж рдЕрдкрдирд╛ рдХрд┐рд░рджрд╛рд░ рдирд┐рднрд╛рдПрдВрдЧреЗред
  2. рд╣рдо рдкреЗрдбрд╝ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реНрддрд░ рд╕реЗ рд╕реНрддрд░, рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, рдЬреИрд╕реЗ рдХрд┐ рдмреАрдПрдлрдПрд╕ (рдЪреМрдбрд╝рд╛рдИ-рдкрд╣рд▓реА рдЦреЛрдЬ) рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рдирдХрд▓реА рдЬрдбрд╝ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрд╕рд▓реА рдХреЛ рд╢реВрдиреНрдп рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  3. рдиреЛрдбреНрд╕ рдХреЛ рдПрдирдХреЛрдб рдХрд░реЗрдВред рдЯреНрд░реА рдиреЛрдб рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рдВрд╢рдЬ, рдФрд░ рд╢реВрдиреНрдп рдХреЗ рдЕрдиреБрд░реВрдк рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдиреЛрдб рдореЗрдВ рдЪрд╛рд░ рдмрдЪреНрдЪреЗ рд╣реИрдВ, рддреЛ рдпрд╣ 11110 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ, рдФрд░ рдпрджрд┐ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ - 0. рдлрд░реНрдЬреА рд░реВрдЯ рдкрд╣рд▓реЗ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИред рдЗрд╕рдХрд╛ рдПрдХрд▓ рд╡рдВрд╢рдЬ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреЛрдб 10 рд╣реИред


рдЧрд┐рдиреЗ рд╣реБрдП рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ред рдиреЛрдбреНрд╕ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИрдВред


рд╕реНрддрд░-рджрд░-рд╕реНрддрд░реАрдп рдЯреНрд░реА рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдбрд┐рдХреНрд╢рдирд░реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ - рдПрдиреНрдХреЛрдбреЗрдб рдиреЛрдбреНрд╕ рд╕реЗ рдмрд┐рдЯреНрд╕ рдХрд╛ рдПрдХ рдХреНрд░рдо рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдФрд░ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рд╕реЗ рдЪрд┐рдкрдХреЗ рд╣реБрдПред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 21-рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рд╣реИред рд╡реИрд╕реЗ, рдЗрд╕реЗ рдПрд▓рдмреАрдПрд╕ (LOUDS рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред



рдЙрдкрд╕рд░реНрдЧ рд╡реГрдХреНрд╖ рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдбрд┐рдХреНрд╢рдирд░реАред


рдХреЙрдореНрдкреИрдХреНрдЯ LOUDS рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓рдХрдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрд▓рдмреАрдПрд╕ рдПрди рдиреЛрдбреНрд╕ (рдирдХрд▓реА рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рд╣реИ) рд▓реЗрддрд╛ рд╣реИ 2N+1 рдмрд┐рдЯред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдмрдиреА рд╣реБрдИ рд╣реИ - рдПрдХ рдкреЗрдбрд╝ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рдПрдХ рдмрд┐рдЯрдореИрдк рдореЗрдВ рдмрджрд▓ рдЧрдПред


рдкрд╣рд▓реЗ рдмрдЪреНрдЪреЗ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ ред рдПрдХ рдиреЛрдб рд╕реЗ рд╕рдВрдХреНрд░рдордг рдореИрдВ рдЗрд╕рдХреА рдкрд╣рд▓реА рд╕рдВрддрд╛рди рдиреЛрдб рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ:


FirstChild(i)=select0(i+1)тИТi


рдореИрдВ - рдпрд╣ рдмреИрдВрдЧрдиреА рдореЗрдВ рдЪрд┐рдкрдХрд╛рдП рдЧрдП рдкрд┐рдЫрд▓реЗ рдкреНрд▓реЗрдЯ рдореЗрдВ рдиреЛрдб рдирдВрдмрд░ рд╣реИред


рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ 3 (рдЕрдХреНрд╖рд░ "a") рдХреЗ рд╕рд╛рде рдиреЛрдб рдХрд╛ рдкрд╣рд▓рд╛ рд╡рдВрд╢рдЬ рдЦреЛрдЬреЗрдВ:


рдлрд╝рд░реНрд╕реНрдЯрд╣рд┐рд▓реНрдб(3)=рдЪрдпрди0(3+1)тИТ3=рдЪрдпрди0(4)тИТ3=9тИТ3=6


рдкрд╣рд▓рд╛ рдмрдЪреНрдЪрд╛ рдиреЛрдб рдЗрдВрдбреЗрдХреНрд╕ 6 рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдХреНрд╖рд░ "k" рд╣реИред рд╣рдо рдкреЗрдбрд╝ рдХреА рдЬрдбрд╝ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:


FirstChild(0)=select0(0+1)тИТ0=select0(1)=1


рд╣рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ 1, рдЕрдХреНрд╖рд░ "рдФрд░" рдХреЗ рд╕рд╛рде рдПрдХ рд╢реАрдЯ рдорд┐рд▓реАред рдЕрднрд┐рд╕рд░рдг! рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдПрдХ рдирдХрд▓реА рдЬрдбрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдереА: рдЕрдиреБрдХреНрд░рдордг рдиреЛрдбреНрд╕ рдХреЗ рдЬрд╛рджреВ рдХреЗ рд▓рд┐рдПред рдиреЛрдб рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрди рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рджрд░рдЕрд╕рд▓, рдкреЗрдбрд╝ рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рд╕реВрддреНрд░ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдПрдХ рдХреЗ рдмрд╛рдж рдЕрдЧрд▓реЗ рд╡рдВрд╢ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 1 рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ, рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдиреЛрдб рдХреЗ рд╡рдВрд╢рдЬ рд╣рдореЗрд╢рд╛ рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдЕрдВрддрд░рд╛рд▓ рдХреЗред рд▓реЗрдХрд┐рди рдЬрдм рдЙрди рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рдордп рдкрд░ рд░реБрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╡рдВрд╢ рдЕрдВрддрд┐рдо рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред


рдХрд┐рд╕реА рдиреЛрдб рдХреЗ рдЕрдВрддрд┐рдо рд╡рдВрд╢рдЬ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ рдореИрдВ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЧреБрдЬрд░рддрд╛ рд╣реИ: рдиреЛрдб рдХреЛрдб рдореЗрдВ рдЕрдВрддрд┐рдо рдЗрдХрд╛рдИ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг - рдпрд╣ рд╡рд╣ рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЪреНрдЪреЗ рдХреЛ рдирд╛рдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрдЪреНрдЪреЗ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛:


lastChildPos(i)=select0(i+2)тИТ1


рдиреЛрдб рдХреЛрдб рдореЗрдВ рдЕрдВрддрд┐рдо рдЗрдХрд╛рдИ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдмрд┐рдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЗрдЯ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдирд┐рд╖реНрдХрд░реНрд╖ рдЦреБрдж рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ: рдпрд╣ рдПрдХ рд╡рдВрд╢рдЬ рд╣реИ, рд╡рдВрд╢рдЬ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдкрддреНрддреАред рдпрджрд┐ рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВ:


lastChild(i)=rank1(lastChildPos(i)тИТ1)


рдиреЛрдб 2 рдХреЗ рдЕрдВрддрд┐рдо рд╡рдВрд╢рдЬ (рдЕрдХреНрд╖рд░ "k") рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред


lastChildPos(2)=select0(2+2)тИТ1=select0(4)тИТ1=9тИТ1=$


рд╕реВрдЪрдХрд╛рдВрдХ 8 рдкрд░ рдмрд┐рдЯ 1 рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдиреЛрдб 2 рдПрдХ рдкрддреНрддреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рдЕрдВрддрд┐рдо рдмрдЪреНрдЪреЗ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:


lastChild(i)=rank1(8тИТ1)=5


рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рдиреЛрдб рдХреЗ рдЕрдВрддрд┐рдо рд╡рдВрд╢рдЬ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рд╡рдВрд╢рдЬ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдШрдЯрд╛рдирд╛ рдФрд░ 1 рдЬреЛрдбрд╝рдирд╛ рд╣реИ:


рдЪрд┐рд▓реНрдбреНрд░рди(i)=рд▓рд╛рд╕реНрдЯрд╣рд┐рд▓реНрдб(i)тИТрдлрд░реНрд╕реНрдЯрд╣рд┐рд▓реНрдб(i)+1


рд▓реЗрдХрд┐рди рдорд╛рди рд▓реАрдЬрд┐рдП рдиреЛрдб рдореИрдВ рдПрдХ рдкрдбрд╝реЛрд╕реА рдиреЛрдб рд╣реИ i+1 рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдкреЗрдбрд╝ рдХреЗ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдореИрдВ ред рдлрд┐рд░ рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореИрдВ рдиреЛрдбреНрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╡рдВрд╢ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ i+1 рдФрд░ рдореИрдВ :


рдЪрд┐рд▓реНрдбреНрд░рди(i)=рдлрд╝рд░реНрд╕реНрдЯрд╣рд┐рд▓реНрдб(i+1)тИТрдлрд╝рд░реНрд╕реНрдЯрд╣рд┐рд▓реНрдб(i)


рдиреЛрдб рдХреЗ рд╡рдВрд╢рдЬ рднреА рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдкрд╣рд▓рд╛ рд╡рдВрд╢рдЬ рдореИрдВ рдХреНрдпрд╛ рд╡рд╣ рдЬ рдлрд┐рд░ рджреВрд╕рд░рд╛ - j+1 рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдПрдХ рдиреЛрдб рдкрдбрд╝реЛрд╕реА рдХреЗ рд╡рдВрд╢рдЬ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ i+1 (рдпрджрд┐ рдХреЛрдИ рд╣реЛ)ред


рд╕реВрдЪрдХрд╛рдВрдХ 1 рдХреЗ рд╕рд╛рде рдкрддреНрддреА "рдФрд░" рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╣реИ:


рдмрдЪреНрдЪреЗ(1)=(рдЪрдпрди0(2+1)тИТ2)тИТ(рдЪрдпрди0(1+1)тИТ1)=3тИТ3=0


рдЕрднрд┐рднрд╛рд╡рдХ рдПрдХ рдиреЛрдб рдЦреЛрдЬрддреЗ рд╣реИрдВ рдореИрдВ рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЖрдпреЛрдЬрд┐рдд:


рдорд╛рддрд╛тИТрдкрд┐рддрд╛(i)=рд░реИрдВрдХ0(рдЪрдпрди1(i+1)тИТ1)тИТ1


рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЛрдб 6 рдХреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ ("k" рдЕрдХреНрд╖рд░) рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ:


рдорд╛рддрд╛тИТрдкрд┐рддрд╛(6)=рд░реИрдВрдХ0(рдЪрдпрди1(7)тИТ1)тИТ1=рд░реИрдВрдХ0(9)тИТ1=3


рдпрд╣ рдиреЛрдб 3 рд╣реИ, рдЕрдХреНрд╖рд░ "рдП"ред


рдмрдЪреНрдЪреЗ рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рдкреВрд░реЗ рдкреЗрдбрд╝ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд░реВрдЯ рдФрд░ рдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдирд╛ рдирд╣реАрдВ рд╣реИред


рдмреАрдкреА рдФрд░ рдбреАрдПрдлрдпреВрдбреАрдПрд╕ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдкреНрдкреЗрдХ рдХреА рдПрдХ рдЬреЛрдбрд╝реАред рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦрддрд╛ рд╣реИ - 2рдПрди+рдУ(рдПрди) рд▓рдХрдбрд╝реА рдХреЗ рд▓рд┐рдП рдмрд┐рдЯ рдПрди рдиреЛрдбреНрд╕, рдФрд░ рджреЛрдиреЛрдВ рдХреЛрд╖реНрдардХ рдЦреЛрд▓рдиреЗ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рдиреЛрдб рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд╕рдорд╛рди рд╣реИрдВред


рдмреАрдкреА (рд╕рдВрддреБрд▓рд┐рдд рдХреЛрд╖реНрдардХ) рдПрдХ рдкреЗрдбрд╝ рдХреЛ рдХреЛрд╖реНрдардХ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЛрдбрд╝реАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЗрдбрд╝ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ; рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХрд╛ рджреЛ рдмрд╛рд░ рджреМрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓реА рдпрд╛рддреНрд░рд╛ рдореЗрдВ, рдЙрджреНрдШрд╛рдЯрди рдмреНрд░реИрдХреЗрдЯ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реА рдпрд╛рддреНрд░рд╛ рдореЗрдВ - рд╕рдорд╛рдкрди рдмреНрд░реИрдХреЗрдЯред рдЙрдирдХреЗ рдмреАрдЪ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдХреЛрд╖реНрдардХ рд╣реИрдВред


рдмрд┐рдЯрдореИрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрд╖реНрдардХ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬрд╣рд╛рдВ 1 рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреНрд░реИрдХреЗрдЯ рд╣реИ рдФрд░ 0 рдХреНрд▓реЛрдЬрд┐рдВрдЧ рдмреНрд░реИрдХреЗрдЯ рд╣реИред рдмреАрдкреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдлреЙрд░реНрдореВрд▓реЗ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рддреЗрдЬ рдХрд┐рдП рдЧрдП рд╣реИрдВред LOUDS рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмреАрдкреА рдЖрдкрдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдПрдХ рд╕рдмрдЯреНрд░реА рдХреЗ рдЖрдХрд╛рд░ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдФрд░ рджреЛ рдиреЛрдбреНрд╕ рдХреЗ рдирд┐рдХрдЯрддрдо рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╛рддреЗ рд╣реИрдВ рдореИрдВ рдПрд▓рдпреВрдбреАрдПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рд╡рдВрд╢ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред


DFUDS (рдЧрд╣рд░рд╛рдИ-рдкрд╣рд▓реА рд╕рдВрдпреБрдХреНрдд рдбрд┐рдЧреНрд░реА рдЕрдиреБрдХреНрд░рдо) BP рдФрд░ LOUDS рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред рдмреАрдкреА рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рдЯреНрд░реА рд╡реЙрдХ рдХреЛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдФрд░ рдЗрд╕рдХреЗ рдмреНрд░реИрдХреЗрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдФрд░ рдмреНрд░реИрдХреЗрдЯреНрд╕ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд LOUDS рдореЗрдВ рдиреЛрдбреНрд╕ рдХреЛ рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рдорд╛рди рд╣реИред рдкреЗрдбрд╝ рдкрд░ рдЪрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рдПрдХ рдХреЛрд╖реНрдардХ рдХреНрд░рдо рдореЗрдВ рдПрдХ рдХреЛрд╖реНрдардХ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдлрд┐рд░, рдЬрдм рдиреЛрдбреНрд╕ рдХреЛ рдЯреНрд░реИрд╡рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рд╡рдВрд╢ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреБрд▓реЗ рдХреЛрд╖реНрдардХ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдПрдХ рдХреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ DFUDS рдореЗрдВ рд╡рдВрд╢ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреА рд╕реНрдерд╛рдиреАрдпрддрд╛ BP рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рд╕рдмрдЯреНрд░реА рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдирд┐рдХрдЯрддрдо рд╕рд╛рдорд╛рдиреНрдп рдкреВрд░реНрд╡рдЬ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ O(1) ред рд▓реЗрдХрд┐рди рд╕рдмрдЯреНрд░реА рдХреА рдКрдВрдЪрд╛рдИ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдФрд░ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдкрд░ рдЬ рд╕реНрддрд░ - DFUDS рдХреЗ рд▓рд┐рдП рднрд╛рд░реА рд╕рдВрдЪрд╛рд▓рдиред


рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рдиреА-рдЯреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП LOUDS, BP рдФрд░ DFUDS рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВред



рдкреЗрдбрд╝ рдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдирд╛рд░рдВрдЧреА рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЪреМрдбрд╝рд╛рдИ рдореЗрдВ (LOUDS рдХреЗ рд▓рд┐рдП), рдиреАрд▓рд╛ - рдЬрдм рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ (BP рдФрд░ DFUDS рдХреЗ рд▓рд┐рдП)ред



LOUDS, BP, рдФрд░ DFUDS рд╡реГрдХреНрд╖ рдХреЗ рджреГрд╢реНрдпред


рдЕрдВрдЧреНрд░реЗрдЬреА-рднрд╛рд╖рд╛ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реВрддреНрд░реЛрдВ рдХреЗ рдЕрдВрддрд░ рдХреЛ рджреЗрдЦреЗрдВ рддреЛ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рди рд╣реЛрдВред рдЧрдгрд┐рддрдЬреНрдЮреЛрдВ рдореЗрдВ, рдПрдХ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдкреНрд░реЗрдореА рд╣реИрдВред рдФрд░ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢рдмреНрдж рд░реИрдВрдХ рдФрд░ рд░реЗрдВрдЬ рд╡реНрдпрдВрдЬрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд░реИрдВрдХ рдХреЛ рдЖрдзрд╛ рд╕рдордп рдмрдирд╛рддреЗ рд╣реИрдВред [0;i) ред рд░реИрдВрдХ / рдЪрдпрди рдХреА рд╕рдорд░реВрдкрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдХрд╛рд░рдг, рд╡реЗ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдЪрдпрди(i) рдХреИрд╕реЗ рдЪрдпрди(i+1) ред рд▓реЗрдХрд┐рди рдЗрд╕ рдлреЙрд░реНрдо рдореЗрдВ рдХреБрдЫ рдлреЙрд░реНрдореВрд▓реЗ рдЫреЛрдЯреЗ рджрд┐рдЦрддреЗ рд╣реИрдВред


рд╡рд┐рд░рд▓ рд╕рд░рдгреА: рд╣рд┐рд▓рд╛рдУ, рд▓реЗрдХрд┐рди рдорд┐рд╢реНрд░рдг рдордд рдХрд░реЛ


рд╡рд┐рд░рд▓ рд╕рд░рдгреА рдПрдХ рдФрд░ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рд╕рдЪрдореБрдЪ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдРрд╕реЗ рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ рдХрднреА-рдХрднреА рднрд░реЗ рд╣реБрдП рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдЖрджреЗрд╢ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЦрд╛рд▓реА рддрддреНрд╡ рдпрд╛ рддреЛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд▓реЗрддреЗ рд╣реИрдВ рдпрд╛ рдЕрд╢рдХреНрдд рдЬреИрд╕реЗ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдХрдИ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рдПрдХ рд╡рд┐рд░рд▓ рд╕рд░рдгреА рдХреНрд╖рд┐рддрд┐рдЬ рдкрд░ рдШреВрдорддреА рд╣реИред рд╕реЛрд╢рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдЧреНрд░рд╛рдлрд╝, рдЦреЛрдЬ рдЗрдВрдЬрди рд░реИрдВрдХрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рдПрдХреНрд╕реЗрд▓ рдЬреИрд╕реА рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рдПрдХ рдЪрд┐рдк рдореЗрдВ рдЕрд░рдмреЛрдВ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рджреНрдпреБрдд рд╕рд░реНрдХрд┐рдЯ рд╕рд┐рдореБрд▓реЗрдЯрд░ рддреБрд░рдВрдд рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред


рдЕрдХреНрд╕рд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд▓рд╡рдХреНрд░рд╛рдлреНрдЯрд┐рдпрди рд╢реИрд▓реА рдореЗрдВ рд╕рд╛рдЗрдХреНрд▓реЛрдкрд┐рдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рднреЛрд▓реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╡реЗ рд░рд╛рдо рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓рдЧрднрдЧ рдЦрд╛рд▓реА рд░рд╣рддреЗ рд╣реИрдВред рд╕реНрдореГрддрд┐ рдФрд░ рдЧрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕реНрдкрд╛рд░реНрд╕ рд╕рд░рдгрд┐рдпрд╛рдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рдЖрд╕рдиреНрди рд╕реВрдЪрд┐рдпреЛрдВ, рдмрд╛рдЗрдирд░реА рдкреЗрдбрд╝реЛрдВ ... рдпрд╛ рд░рд╕реАрд▓реЗ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИрдВред


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд░рд▓ рд╕рд░рдгреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рд╢рдмреНрджрдХреЛрд╢ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВред рдпрд╣ рдХреНрдпрд╛ рджреЗрдЧрд╛?



рдПрдХ рдмрд┐рдЯрдореИрдк рдХреЗ рд╕рд╛рде рд╡рд┐рд░рд▓ рд╕рд░рдгреАред


рдЕрдм, рдореВрд▓ рд╕рд░рдгреА рддрдХ рд╕реАрдзреЗ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рддрддреНрд╡ рдмреНрдпрд╛рдЬ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╕рднреА рдЕрдкреВрд░реНрдг рддрддреНрд╡реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рд╕реЗ рдореВрд▓ рд╕рд░рдгреА рдХреЛ рд╕рд┐рдХреЛрдбрд╝рдиреЗ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ:



рдЦрд╛рд▓реА рддрддреНрд╡реЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд░рдгреАред


рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рд╕рд░рдгреА рдореЗрдВ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧред рдХрд┐рд╕реА рддрддреНрд╡ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореВрд▓ рд╕рд░рдгреА рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЕрд░реНрдерд╛рдд рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдореИрдк рдХрд░реЗрдВ рдореИрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╢рдмреНрджрдХреЛрд╢ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдЬ рдПрдХ рд╕рдВрдХреБрдЪрд┐рдд рд╕рд░рдгреА рдореЗрдВред рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ рд░реИрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


j=rank1(i)тИТ1


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ 8 рд╡реЗрдВ рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдЪреАрдЬреЗрдВ рдХреИрд╕реА рд╣реИрдВ: рдмрд┐рдЯрдореИрдк[bit]=реж ред рддреЛ, рдореВрд▓ рд╕рд░рдгреА рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИред рддрддреНрд╡ 7 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдмрд┐рдЯрдореИрдк[bit]=рез ред рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рд░реИрдВрдХ1(7)тИТ1=3тИТ1=2 ред рдЗрдВрдбреЗрдХреНрд╕ 2 рдореЗрдВ "рдЧреЛ" рд╣реИред


рд╕реНрд░реЛрдд рд╕рд░рдгреА рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ред рд╕рд░рдгреА рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рддрддреНрд╡реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА! рдпрджрд┐ рдбреЗрдЯрд╛ рд╕реЙрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЦреЛрдЬ рдХреЛ рдХрдо рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ O(N) рдЬрд╣рд╛рдБ рдПрди - рдЧреИрд░-рдЦрд╛рд▓реА рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдорд┐рд▓реА рд╣реБрдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЬ рдЗрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдореИрдВ рдорд╛рдиреЛ рд╕рд░рдгреА рд╕рд┐рдХреБрдбрд╝реА рдирд╣реАрдВ рдереАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд░реИрдВрдХ рдХрд╛ рд╡реНрдпреБрддреНрдХреНрд░рдо:


i=select1(j+1)


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "C ++" рд▓рд╛рдЗрди рдвреВрдВрдвреЗрдВред рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ, рдпрд╣ рдЗрдВрдбреЗрдХреНрд╕ 0. рдкрд░ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдореВрд▓ рд╕рд░рдгреА рдореЗрдВ рдЗрд╕рдХрд╛ рдЗрдВрдбреЗрдХреНрд╕ рд╣реИ select1(0+1)=3 ред


рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╕реНрдореГрддрд┐ рдмрдЪрдд рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ред рдпрджрд┐ рд╕рд░рдгреА рдХреЛ рдХрдИ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдмрдЪрдд рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рд░рдгреА рдореЗрдВ рдЦреЛрдЬ рдПрдХ рдмрдбрд╝реЗ рдФрд░ рд╡рд┐рд░рд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬрд╝ рд╣реИ: рдпрд╣ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд┐рдЯ-рдЗрдВрдбреЗрдХреНрд╕ рдХрд┐рдП рдЧрдП рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рдлреИрдВрд╕реА рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рд░рдгреА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреИрд╢ рд▓рд╛рдЗрди рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред


рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 230 рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдЬрд╣рд╛рдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рдЗрд╕рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛рдУрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЕрдкрдирд╛ рдЖрд▓рд╛ рд╣реИред рдПрдХ рджреИрдирд┐рдХ рдЙрджрд╛рд╣рд░рдг рдмрд┐рдЯрдЯреЛрд░реЗрдВрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдмрд┐рдЯрдореИрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдЦрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕рд╣рдХрд░реНрдореА рдЕрдкрдиреЗ рдЦрдВрдбреЛрдВ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЦрдВрдбрд┐рдд рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЛрд╡рд░реНрд╕, рд╡реЙрдпрд░реНрд╕ рдФрд░ рдиреНрдпреВ рд╣реЛрд░рд╛рдЗрдЬрдиреНрд╕ рд╕реНрдЯреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЯреНрд░рд╛рдВрд╕-рдиреЗрдкреНрдЪреНрдпреВрди рдЦреБрд▓реЗ рд╕реНрдерд╛рдиреЛрдВ рдХреА рдЬреБрддрд╛рдИ рдХрд░рддрд╛ рд╣реИред


рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдкреЗрдбрд╝ рдФрд░ рдПрдХ рд╡рд┐рд░рд▓ рд╕рд░рдгреА рдХреЗ succinctization рдХреЗ рд╡рд░реНрдгрд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреАрдВрд╡ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд░реИрдВрдХ / рдЪреБрдирд┐рдВрджрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдореЗрдВ рдПрдХ рдЕрдЯрд▓ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдХреЙрдореНрдкреИрдХреНрдЯ рд▓реЗрдХрд┐рди рддреЗрдЬреА рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдкреВрд░рд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рддреЗрдЬреА рд╕реЗ рдлрдЯ рдЬрд╛рддрд╛ рд╣реИред рд╢реЛрдз рдкреНрд░рдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкрд░реНрдпрд╛рдкреНрддрддрд╛ рд░реИрдВрдХ рдФрд░ рдЪрдпрди рдЧрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрддреНрдпрдВрдд рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рд░реИрдВрдХ - рдХреЗ рд▓рд┐рдП O(1) ; рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ - рдХреЗ рд▓рд┐рдП O(рд▓реЙрдЧ(рд▓реЙрдЧрдПрди)) , рдЬреЛ рд▓рдЧрднрдЧ рд╕реНрдерд┐рд░ рд╣реИред рдФрд░ рд╣рд╛рдВ, рдпрд╣ рдХреБрдЫ рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рдЬрдЯрд┐рд▓ рд╕рд╛рдЬрд┐рд╢ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдХрд╛рдо рдореЗрдВ рдереЛрдбрд╝реА рд╕рдордЭ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдпрд╣рд╛рдВ рд░реБрдХреВрдВрдЧрд╛ред


рд░реЛрдЪрдХ рддрдереНрдп


рд╕реВрдЪрдирд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдирд┐рдореНрди рд╕реАрдорд╛ рдХреНрдпрд╛ рд╣реИ? рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИ рдПрди рддрддреНрд╡реЛрдВред рдЯрдХрд░рд╛рд╡ рдХреЗ рдмрд┐рдирд╛ рдЙрдиреНрд╣реЗрдВ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдИ рдмрд┐рдЯреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд╕реЗ рдХрдо рдирд╣реАрдВ X=log2N ред X рдФрд░ рд╣рд╛рд░реНрдЯрд▓реЗ рдлрд╛рд░реНрдореВрд▓реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдмрд╣реБрдд рдХрдо рд╕реАрдорд╛ рд╣реИред рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдиреЗ рдкрд░, рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдФрд░ рднреА рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╕рдВрдХреБрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдХреНрдпрд╛ рд░рд╕реАрд▓рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ? рдЗрд╕рдореЗрдВ рд╕рдореНтАНрдорд┐рд▓рд┐рдд рд╣реИ рдПрди рд╡рд░реНрдг рдФрд░ рдПрдХ рдЕрд╢рдХреНрдд ASCII рд╡рд░реНрдг рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рддреЛ рдпрд╣ рд▓реЗрддрд╛ рд╣реИ рдПрди+1 рд╕реНрдерд╛рдиреЛрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП ... рд╡рд╣ рд░рд╕реАрд▓рд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдирд┐рд╣рд┐рдд рд╣реИ! рдЬреЛ рд╣рдореЗрдВ рдЕрдЧрд▓реЗ рдкреНрд░рд╢реНрди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред


рдХреНрдпрд╛ рд╕рднреА рд░рд╕реАрд▓реА рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИрдВ? рд╕рдХреНрд╕реЗрд╕ рд░рд┐рд╕рд░реНрдЪ рдХреНрд╖реЗрддреНрд░ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрдореНрдкреИрдХреНрдЯ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдерд╛рдирд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВ:


  • рдХреЙрдореНрдкреИрдХреНрдЯ - O(N) ред рд╕реЗ рд░реИрдЦрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдПрди тАФ . ┬л┬╗ . . , : . , . , 0 , . O(2N) ( 2 , ) select .
  • succinct тАФ N+o(N) ред тАФ , succinct data structures . : (Pascal string), . N+log(N) ред
  • implicit тАФ N+O(1) ред , . : (heap) . N+1 ред

? , , . succinct- . , -, FM-, RMQ (range minimum queries), LCP (longest common prefix), , succinct'. -.



, , . рдФрд░ рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВред , , X, .


succinct тАФ , ┬л- ┬╗. Succinct тАФ . , , succinct. , . (IME) Google, . MAPS.ME succinct- .


, . ., 97 % -: . 3 %.


рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


, succinct:



, :


Source: https://habr.com/ru/post/hi479822/


All Articles