
рдПрд▓реЛрдХреЗрдЯрд░ рдХреА рдереАрдо рдЕрдХреНрд╕рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдкреЙрдк рдЕрдк рд╣реЛрддреА рд╣реИ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдПрд▓реЛрдХреЗрдЯрд░ рдПрдХ рддрд░рд╣ рдХреА рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рджрд┐рд▓ рд╣реИред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдореИрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдордиреЛрд░рдВрдЬрдХ рдФрд░ рдкреНрд░рдЦреНрдпрд╛рдд
рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ -
JeMalloc , рдлреЗрд╕рдмреБрдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдФрд░ рд╡рд┐рдХрд╕рд┐рдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдмрд╛рдпреЛрдирд┐рдХ [рдПрдВрдбреНрд░реЙрдЗрдб] рд▓рд┐рдмрд╛рд╕ рд╕реА рдореЗрдВредрдиреЗрдЯрд╡рд░реНрдХ рдкрд░, рдореБрдЭреЗ рдХреЛрдИ рднреА рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕ рдЖрд╡рдВрдЯрдирдХрд░реНрддрд╛ рдХреА рдЖрддреНрдорд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдЕрдВрддрддрдГ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ JeMalloc рдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдирд┐рдХрд▓реА рдФрд░ рдпрд╣ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡рд╣ рдердХрд╛ рдирд╣реАрдВ рдерд╛, рдореИрдВ рдореВрд▓ рдмрд╛рддреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ: рдореВрд▓ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ JeMalloc рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрд┐рд▓реНрд▓реА рдХреЗ рдиреАрдЪреЗ, рдореИрдВ
рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдФрд░
рдмрд┐рдЯрдореИрдк рдЯреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬреЛ JeMalloc рдХреА рдиреАрдВрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореИрдВ
рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдФрд░
рдлрд╛рдЗрди рдЧреНрд░реЗрди рд▓реЙрдХрд┐рдВрдЧ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдирд╣реАрдВ рдЫреВрддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрджреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрди рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХреНрд╕реЛрдЯрд┐рдХреНрд╕ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдПрдХред
рдмрд┐рдЯрдореИрдк_ рдПрдХ рдкреЗрдбрд╝ рдЬреИрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:
- рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗрдЯ / рдкрд░реЗрд╢рд╛рди рдмрд┐рдЯ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЦреЛрдЬреЗрдВред
- рдмрд┐рдЯ рдХреЗ рджрд┐рдП рдЧрдП рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ I рдХреЗ рд╕рд╛рде рдмрд┐рдЯ рдХрд╛ рдореВрд▓реНрдп рдмрджрд▓реЗрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
- рдкреЗрдбрд╝ n рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рд╣реИрдВ:
- рдкреЗрдбрд╝ рдХреА рдЖрдзрд╛рд░ рдЗрдХрд╛рдИ рдиреЛрдб рд╣реИ, рдФрд░ рдиреЛрдб рдХреА рдЖрдзрд╛рд░ рдЗрдХрд╛рдИ рдмрд┐рдЯ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╢реНрдореАрд░ рдмрд┐рдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдиреЛрдб рдХреА рдмрд┐рдЯрдиреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд┐рдЯреНрд╕ рдХреА рдПрдХ рдЪрдпрдирд┐рдд рд╕реАрдорд╛ рдкрд░ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрдгрдирд╛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЬрд▓реНрджреА рдФрд░ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХреА рдЬрд╛рдПред JeMalloc рдореЗрдВ, рдПрдХ рдиреЛрдб рдХрд╛ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд▓рдВрдмреЗ рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкреЗрдбрд╝ рдХреА рдКрдВрдЪрд╛рдИ рдХреЛ рд╕реНрддрд░реЛрдВ рдореЗрдВ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ n рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП H = рд╣реЛрддрд╛ рд╣реИ рд╕реНрддрд░реЛрдВред
- рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЛ рдПрдХ рдЕрдиреБрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдиреЛрдбреНрд╕, рдЬреЛ рдХреЗ рдПрдХ рдЕрдиреБрдХреНрд░рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдмрд┐рдЯред
- рдкреЗрдбрд╝ рдХреЗ рдЙрдЪреНрдЪрддрдо (рдореВрд▓) рд╕реНрддрд░ рдореЗрдВ k рдмрд┐рдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдХрдо - n рдмрд┐рдЯреНрд╕ рдХреЗред
- рд╕реНрддрд░ L рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ, L рдХреЗ рд╕реНрддрд░ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ L - 1: рдпрджрд┐ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡реНрдпрд╕реНрдд рд╣реИ, рддреЛ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХреЗ рд╕рднреА рдмрд┐рдЯреНрд╕ рднреА рд╡реНрдпрд╕реНрдд рд╣реИрдВ, рдЕрдиреНрдпрдерд╛, рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХреЗ рдмрд┐рдЯреНрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ 'рд╡реНрдпрд╕реНрдд' рдФрд░ 'рдореБрдХреНрдд' рдЕрд╡рд╕реНрдерд╛ред
рдмрд┐рдЯрдореИрдк_ рдХреЛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ: рдкрд╣рд▓рд╛, рд╕рднреА рдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдЖрдпрд╛рдо рдХрд╛ - рдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛, рдкреЗрдбрд╝ рдХреА рдКрдВрдЪрд╛рдИ рдХреЗ рдЖрдпрд╛рдо - рдЯреНрд░реА рдиреЛрдбреНрд╕ рдХреА рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдСрдлрд╕реЗрдЯ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдПрдХ рдкреЗрдбрд╝ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде, рдореВрд▓ рддрддреНрд╡ рдкрд╣рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░, рдХреНрд░рдо рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рдиреЛрдбреНрд╕ред рд╣рд╛рд▓рд╛рдВрдХрд┐, JeMalloc рд▓реЗрдЦрдХ рдореВрд▓ рддрддреНрд╡ рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреЗрдбрд╝ рдХреЗ рд╕реНрддрд░ рдХреЗ рдиреЛрдб рд╣реЛрддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, 92 рдмрд┐рдЯреНрд╕ рдФрд░ рдХреЗ = 32 рдорди рдХрд╛ рдЕрдиреБрдХреНрд░рдо рд▓реЗрдВред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд░рд╛рдЬреНрдп 'рдореБрдХреНрдд' рд╣реИ - рдПрдХ рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд, рдФрд░ рд░рд╛рдЬреНрдп 'рд╡реНрдпрд╕реНрдд' - рд╢реВрдиреНрдпред рдпрд╣ рднреА рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореВрд▓ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ, рдЗрдВрдбреЗрдХреНрд╕ 1 рдХреЗ рд╕рд╛рде рдмрд┐рдЯ (рд╢реВрдиреНрдп рд╕реЗ рдЧрд┐рдирддреА, рдЖрдВрдХрдбрд╝рд╛ рдореЗрдВ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рдХреА рдУрд░) рд╡реНрдпрд╕реНрдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╕реЗрдЯ рд╣реИред рддреЛ рдРрд╕реЗ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдореИрдк_ рдиреАрдЪреЗ рдХреА рдЫрд╡рд┐ рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
рдЖрдХреГрддрд┐ рд╕реЗ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рд╡реГрдХреНрд╖ рдХреЗ рдХреЗрд╡рд▓ рджреЛ рд╕реНрддрд░ рд╣реИрдВред рд░реВрдЯ рд╕реНрддрд░ рдореЗрдВ 3 рдпреВрдирд┐рдЯ рдмрд┐рдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдмрд┐рдЯ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рджреЛрдиреЛрдВ рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рдмрд┐рдЯреНрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ, рдЖрдк рдЯреНрд░реА рд╡реНрдпреВ рдХреЛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдиреЛрдб рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдХреЗ рд╕рднреА рдЯреНрд░реА рдиреЛрдбреНрд╕ рдФрд░ рдСрдлрд╝рд╕реЗрдЯреНрд╕редрдпрд╣ рдорд╛рдирдХрд░ рдХрд┐ рдмрд┐рдЯрдореИрдк_ рдХреЛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ (рдбреЗрдЯрд╛ рд╕рд░рдгреА рдФрд░ рдбреЗрдЯрд╛ рд╕рд░рдгреА рдореЗрдВ рдЯреНрд░реА рд▓реЗрд╡рд▓ рдСрдлрд╝рд╕реЗрдЯреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА) рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рджрд┐рдП рдЧрдП рдмрд┐рдЯрдореИрдк_ рдЯреА рдореЗрдВ рдкрд╣рд▓реЗ рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ:
- рд░реВрдЯ рдиреЛрдб рд╕реЗ рд╢реБрд░реВ, рд╣рдо рдиреЛрдб рдХреЗ рдкрд╣рд▓реЗ рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ: рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд┐рд╢реЗрд╖ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЦреЛрдЬ рд╕рдордп рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо FirstSetedBit рдЪрд░ рдореЗрдВ рдкрд╛рдпрд╛ рдкрд░рд┐рдгрд╛рдо рдмрдЪрд╛рдПрдВрдЧреЗ ред
- рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╣рдо рдкрд╛рдП рдЧрдП рдмрд┐рдЯреНрд╕ рдХреЗ рдкрджреЛрдВ рдХрд╛ рдпреЛрдЧ рдмрдирд╛рдП рд░рдЦреЗрдВрдЧреЗ: countOfSettedBits + = FirstSetedBit
- рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдиреЛрдб рдХреЗ рдкрд╣рд▓реЗ рдХрдо рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЗрдХрд╛рдИ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЛ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВред рд╕рдВрдХреНрд░рдордг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рдореНрдирддрдо рд╕реНрддрд░ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ред countOfSettedBits - рдЗрдирдкреБрдЯ рдмрд┐рдЯ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдмрд┐рдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдПрдХ рдвреЗрд░ рдЬреИрд╕рд╛ рдкреЗрдбрд╝ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, O (1) рдХреА рдирд┐рд░рдВрддрд░ рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ O (рд▓реЙрдЧ рдПрди) рдпрд╛ O (1) рдХреА рдирд┐рд░рдВрддрд░ рд▓рд╛рдЧрдд рдХреЗ рд╕рд╛рде рдПрдХ рддрддреНрд╡ рдбрд╛рд▓реЗрдВред
- рдХрдо рд╕реЗ рдХрдо рдирд┐рд░рдВрддрд░ рд╕рдордп рдкрд░ рдЦреЛрдЬреЗрдВ - O (1)
- рдирд┐рд░рдВрддрд░ рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╕рд╛рде рджреЛ рдЬреЛрдбрд╝реА рдвреЗрд░ рдХреЛ рдорд┐рд▓рд╛рдПрдВ - O (1) рдФрд░ рдкрд░рд┐рд╢реЛрдзрди рд▓рд╛рдЧрдд O (рд▓реЙрдЧ рдПрди) рдпрд╛ O (1) - рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░
- O (N) рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдЬрдЯрд┐рд▓рддрд╛ рдЕрдиреБрдорд╛рди рдФрд░ O (рд▓реЙрдЧ рдПрди) рдореЗрдВ рдЕрдиреБрдорд╛рдирд┐рдд рдЬрдЯрд┐рд▓рддрд╛ рдЕрдиреБрдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдордирдорд╛рдирд╛ рддрддреНрд╡ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдиреНрдпреВрдирддрдо рдПрдХ) рд╣рдЯрд╛рдПрдВ
рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдЬрдбрд╝ рдХреЗ рд╕рд╛рде рдПрдХ рдордирдорд╛рдирд╛ рдкреЗрдбрд╝ рд╣реИ рдЬреЛ рдвреЗрд░ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рд╢реАрд░реНрд╖ рдХреА рдХреБрдВрдЬреА рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдХреБрдВрдЬреА рд╕реЗ рдХрдо / рдХреЛрдИ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ)ред
рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬреЛрдбрд╝реАрджрд╛рд░ рдвреЗрд░ рдЬрд┐рд╕рдореЗрдВ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХрд╛ рдореВрд▓реНрдп рдореВрд▓ рдиреЛрдб рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдХрдо рд╣реИ (рдЙрд░реНрдл рдорд┐рди рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк) рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рдореЗрдореЛрд░реА рдореЗрдВ, рдкреЗрдпрд░рд┐рдВрдЧ-рд╣реАрдк, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЯреНрд░реА рдиреЛрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ 3 рдкреЙрдЗрдВрдЯ рд╣реЛрддреЗ рд╣реИрдВ:
- рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдХреЗ рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ
- рдиреЛрдб рдХреЗ рдмрд╛рдПрдВ рднрд╛рдИ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ
- рдиреЛрдб рдХреЗ рджрд╛рд╣рд┐рдиреЗ рднрд╛рдИ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ
рдпрджрд┐ рд╕рдВрдХреЗрддрд┐рдд рдиреЛрдбреНрд╕ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЧрд╛рдпрдм рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рдиреЛрдб рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдКрдкрд░ рдЪрд┐рддреНрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдвреЗрд░ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдорд┐рд▓рддрд╛ рд╣реИ:
рдпрд╣рд╛рдВ, рдмрд╛рдИрдВ рдУрд░ рдХреЗ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рдХреЛ рд▓рд╛рд▓ рдмрд┐рдВрджреАрджрд╛рд░ рддреАрд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЛрдб рдХреЗ рджрд╛рд╣рд┐рдиреЗ рднрд╛рдИ рдХреЛ рд╕реВрдЪрдХ рдиреАрд▓рд╛ рд╣реИ, рдФрд░ рдмрд╛рдПрдВ рднрд╛рдИ рдХреЛ рд╕реВрдЪрдХ рдЧреНрд░реЗ рд╣реИред рдареЛрд╕ рддреАрд░ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд╕рдорд╛рди рд░реВрдк рдореЗрдВ рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИредрдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рддрдереНрдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
- рдвреЗрд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣рдореЗрд╢рд╛ рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рднрд╛рдИ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
- рдпрджрд┐ рдХрд┐рд╕реА рднреА рдиреЛрдб рдпреВ рдореЗрдВ рдмрд╛рдПрдВ-рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реВрдиреНрдп-рд╢реВрдиреНрдп рд╕реВрдЪрдХ рд╣реИ, рддреЛ рдпрд╣ рдиреЛрдб рдпреВ рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЗ рдиреЛрдбреНрд╕ рдХреА рджреЛрдЧреБрдиреА рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдХрд╛ 'рд╣реЗрдб' рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реВрдЪреА рдХреЛ рд╕рд┐рдмрд▓рд┐рдВрдЧрд▓рд┐рд╕реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рд╣рдо
рдорд┐рди рдкреЗрдпрд░рд┐рдВрдЧ-рд╣реАрдк рдореЗрдВ рдореБрдЦреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ:
- рдЬреЛрдбрд╝реА рдХреЛ рдвреЗрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВ:
рдмрддрд╛ рджреЗрдВ рдХрд┐ рдПрдХ рд░реВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдорд╛рди {R, V_1} , рд╕рд╛рде рд╣реА рдПрдХ рдиреЛрдб {U, V_2} рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдлрд┐рд░, рдЬрдм рдПрдХ рджрд┐рдП рдЧрдП рдпреБрдЧреНрдорди рдвреЗрд░ рдореЗрдВ U рдиреЛрдб рдбрд╛рд▓реЗрдВ:
- рдпрджрд┐ рд╕реНрдерд┐рддрд┐ V_2 <V_1 рд╕рдВрддреБрд╖реНрдЯ рд╣реИ: U рдвреЗрд░ рдХрд╛ рдирдпрд╛ рд░реВрдЯ рдиреЛрдб рдмрди рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд░реВрдЯ R рдХреЛ рдЙрд╕рдХреЗ рдмрд╛рдПрдВ рдЪрд╛рдЗрд▓реНрдб рдиреЛрдб рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ 'рдХреНрд░рд╛рдЙрдбрд┐рдВрдЧ рдЖрдЙрдЯ' рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдиреЛрдб рдЖрд░ рдХрд╛ рджрд╛рд╣рд┐рдирд╛ рднрд╛рдИ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдмрд╛рдПрдВ-рд╕рдмрд╕реЗ рдиреЛрдб рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдиреЛрдб рдЖрд░ рдХреЗ рдмрд╛рдПрдВ-рд╕рдмрд╕реЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдЕрдиреНрдпрдерд╛: U, R рдХреА рдЬрдбрд╝ рдХрд╛ рдмрд╛рдпрд╛рдБ-рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд▓ рдиреЛрдб рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рднрд╛рдИ R рдХреА рдЬрдбрд╝ рдХрд╛ рдмрд╛рдпрд╛рдБ-рд╕рдмрд╕реЗ рдиреЛрдб рд╣реИред
- рджреЛ рдЬреЛрдбрд╝реА рдвреЗрд░ рдореЗрдВ рд╡рд┐рд▓рдп:
рдЬрдбрд╝реЛрдВ рдФрд░ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рдЬреЛрдбрд╝реА рдпреБрдЧреНрдорди {R_1, V_1} , {R_2, V_2}, рдХреНрд░рдорд╢рдГ рджрд┐рдП рдЬрд╛рдПрдВред рд╣рдо рдРрд╕реЗ рдвреЗрд░ рдХреЛ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреИрдкрд┐рдВрдЧ рд╣реАрдк:
- рдЬрдбрд╝ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдо рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдвреЗрд░ рдЪреБрдиреЗрдВред рдЗрд╕реЗ {R_1, V_1} рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдирд╛рдПрдВред
- рдЪрдпрдирд┐рдд Heap рд╕реЗ рд░реВрдЯ R_1 рдХреЛ 'рдЕрд▓рдЧ рдХрд░реЗрдВ': рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ рдЗрд╕рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрд╛рдпреАрдВ рдУрд░ рдХреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдмрдЪреНрдЪреЗ рдХреЗ рдиреЛрдб рдкрд░ рд░рдЦрддреЗ рд╣реИрдВред
- рд░реВрдЯ R_1 рдХреЗ рд╕рдмрд╕реЗ рдмрд╛рдПрдВ рдЪрд╛рдЗрд▓реНрдб рдиреЛрдб рдХреЗ рд▓рд┐рдП рдирдП рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд╕рд╛рде, рд░реВрдЯ R_2 рдмрдирд╛рдПрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм рд╕реЗ, R_2 рд░реВрдЯ рд╕реНрдерд┐рддрд┐ рдЦреЛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдвреЗрд░ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЛрдб рд╣реИред
- рд╣рдо рдиреЛрдб R_2 рдХреЗ рджрд╛рд╣рд┐рдиреЗ рднрд╛рдИ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдирдП рдорд╛рди рдХреЗ рд╕рд╛рде рд╣рдо рдкреБрд░рд╛рдиреЗ рдмрдЪреНрдЪреЗ рдХреЛ рд░реВрдЯ R_1 рдХреЗ рд╕рдмрд╕реЗ рдирд┐рдЪрд▓реЗ рдмрдЪреНрдЪреЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП (рд╢реВрдиреНрдп рд╕реЗ рдкрд╣рд▓реЗ) рдкреЙрдЗрдВрдЯрд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреНрд░рдорд╢рдГ R_1 рдХреЗ рд▓рд┐рдП, рдмрд╛рдПрдВ рднрд╛рдИ рдХреЛ рдкреЙрдЗрдВрдЯрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд░реНрдЬ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдпрд╣рд╛рдБ, рд░реВрдЯ '4' рдХреЗ рд╕рд╛рде рдвреЗрд░, '1' (1 <4) рд░реВрдЯ рдХреЗ рд╕рд╛рде рдвреЗрд░ рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЙрд╕рдХрд╛ рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдиреЛрдб рдмрди рдЬрд╛рддрд╛ рд╣реИред рдиреЛрдб '4' рдХреЗ рджрд╛рд╣рд┐рдиреЗ рднрд╛рдИ рдХреЛ рдкреЙрдЗрдВрдЯрд░ - рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдиреЛрдб рдХреЗ рдмрд╛рдПрдВ рднрд╛рдИ рдХреЛ рдкреЙрдЗрдВрдЯрд░ '8' рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред- рд░реВрдЯ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ (рдиреНрдпреВрдирддрдо рдорд╛рди рдХреЗ рд╕рд╛рде рдиреЛрдб) рдЬреЛрдбрд╝реА рдХрд╛ рдвреЗрд░:
рдПрдХ рдЬреЛрдбрд╝реА рдвреЗрд░ рд╕реЗ рдПрдХ рдиреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ, рдУ (рд▓реЙрдЧ рдЗрди) рдореЗрдВ рдПрдХ amortized рдЬрдЯрд┐рд▓рддрд╛ рдЕрдиреБрдорд╛рди рджреЗрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдорд▓реНрдЯреАрдкреНрд▓рд╛рд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЬреЗрдорд▓реЙрдХ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рд╣рдо рджрд┐рдП рдЧрдП рд╣реАрдк рдХреА рдЬрдбрд╝ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрд╕рдХрд╛ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдиреЛрдб рд╣реЛрддрд╛ рд╣реИред
- рдмрд╛рдИрдВ рдУрд░ рдХрд╛ рдмрдЪреНрдЪрд╛ рдиреЛрдб рдореВрд▓ рдиреЛрдб рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЗ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рджреЛрд╣рд░реА рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд╣рд▓реЗ рд╣рдЯрд╛рдП рдЧрдП рд░реВрдЯред рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдЕрдВрдд рддрдХ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдиреЛрдбреНрд╕ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдХреА рдЬрдбрд╝реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕реВрдЪреА рдХреЗ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХреЛ рдЕрдЧрд▓реЗ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреВрд░реНрд╡-рддреИрдпрд╛рд░ рдлреАрдлреЛ рдХрддрд╛рд░ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред
- рдЕрдм рдЬрдм FIFO рдХрддрд╛рд░ рдХреЛ рдЖрд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдХрддрд╛рд░ рдХреЗ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХреЛ рдЕрдЧрд▓реЗ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдВрдЧреЗред рд╡рд┐рд▓рдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХрддрд╛рд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
- рд╣рдо рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдПрдХ рддрддреНрд╡ рдХрддрд╛рд░ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддрд╛: рдкрд░рд┐рдгрд╛рдореА рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдкред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг:

- рдПрдХ рдордирдорд╛рдирд╛ рдЧреИрд░-рд░реВрдЯ рдиреЛрдб рдирд┐рдХрд╛рд▓рдирд╛ Heap:
рд╣рдЯрд╛рдП рдЧрдП рдиреЛрдб рдХреЛ рдореВрд▓ рд╣реАрдк рдХреЗ рдХреБрдЫ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВред рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕ рд╕рдмрдЯреНрд░реА рдХреА рдЬрдбрд╝ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдХреА рдЬрдбрд╝ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░, рдкрд░рд┐рдгрд╛рдореА рдкреЗрдбрд╝ рдХреЛ рдореВрд▓ рдХреЗ рд╕рд╛рде рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВред - рдиреНрдпреВрдирддрдо рдЬреЛрдбрд╝реА рдмрдирд╛рдирд╛ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
рдмрд╕ рдвреЗрд░ рдЬрдбрд╝ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рдПрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдкрд░рд┐рдЪрдп рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ: рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдЖрдкрдХреЛ рддреБрд░рдВрдд рдХреБрдЫ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рддрдм рдЬрдм рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдЖрдкрдХреЛ рдСрдкрд░реЗрд╢рди
'рд▓рдЬрд╝реАрд▓реА' рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреА рдЕрдореВрд░реНрдд рд▓рд╛рдЧрдд рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ P рдЖрд╡рдХ рдвреЗрд░ рдореЗрдВ K рдЖрд╡реЗрд╖рдг рдФрд░ K рд╣рдЯрд╛ рджрд┐рдПред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрди рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдо рдвреЗрд░ рд╕реЗ рдиреНрдпреВрдирддрдо рддрддреНрд╡ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЗрдП рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЙрдирдХреЗ рдЖрд▓рд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди рдХреИрд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛:
рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реБрдП рдХрд┐ рдХреБрдЪреА рд░реВрдЯ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдЕрд╢рдХреНрдд рдмрд┐рдВрджреБ рд╣реИрдВ, рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдвреЗрд░ рдореЗрдВ рдбрд╛рд▓реА рдЧрдИ рддрддреНрд╡реЛрдВ рдХреА рджреЛрд╣рд░реА рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реА рд╕реВрдЪреА (рдЗрд╕рдХреЗ рдмрд╛рдж
рдСрдХреНрд╕рд▓рд┐рд╕реНрдЯ ) рдХреЗ рдкреНрд░рдореБрдЦ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдХреА рдЬрдбрд╝ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рддрдм:
- рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдореЗрдВ рдЖрд▓рд╕реА рдиреЛрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐:
Pairing рд╣реАрдк { R_1 , V_1 } рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ U рдиреЛрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЗрд╕реЗ рд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ - рд╕реВрдЪреА рдХреЗ рдкреНрд░рдореБрдЦ рдХреЗ рдмрд╛рдж:

- рджреЛ рдЬреЛрдбрд╝реА рдвреЗрд░ рдХреЗ рдЖрд▓рд╕реА рд╡рд┐рд▓рдп:
Lazy Merging рджреЛ рдЬреЛрдбрд╝реА рдЬреЛрдбрд╝реА, Lazy рдиреЛрдб рд╕рдореНрдорд┐рд▓рди рдХреЗ рд╕рдорд╛рди, рдЬрд╣рд╛рдБ рд╕рдореНрдорд┐рд▓рд┐рдд рдиреЛрдб рдвреЗрд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдореВрд▓ (рджреЛрдЧреБрдирд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ auxList рдХрд╛ рд╕рд┐рд░) рд╣реЛрддрд╛ рд╣реИред - рдЖрд▓рд╕реА рдиреНрдпреВрдирддрдо рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛:
рдиреНрдпреВрдирддрдо рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдСрдХреНрд▓рд┐рд╕реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рдХреА рдЬрдбрд╝реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕ рд╕реВрдЪреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдорд░реНрдЬ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдкрд┐рдВрдЧрд┐рдВрдЧ рд╣реАрдк рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдиреНрдпреВрдирддрдо рддрддреНрд╡ рд╡рд╛рд▓реЗ рд░реВрдЯ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред - рдиреНрдпреВрдирддрдо рдпреБрдЧреНрдорди рд╣реАрдк рддрддреНрд╡ рдХрд╛ рдЖрд▓рд╕реА рд╣рдЯрд╛рдирд╛:
рдЬрдм рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдк рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдиреНрдпреВрдирддрдо рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдо рдЙрд╕ рдиреЛрдб рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдиреНрдпреВрдирддрдо рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЙрд╕ рдкреЗрдбрд╝ рд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЬрдбрд╝ рд╣реИ, рдЗрд╕рдХреЗ рдЙрдкрдкреНрд░рдХрд╛рд░ рдХреЛ рдореБрдЦреНрдп рдвреЗрд░ рдХреЗ рдФрдХреНрд╕рд▓рд┐рд╕реНрдЯ рдореЗрдВ рдбрд╛рд▓реЗрдВред - рдПрдХ рдордирдорд╛рдирд╛ рдЧреИрд░-рд░реВрдЯ рдЬреЛрдбрд╝реА рдвреЗрд░ рдиреЛрдб рдХрд╛ рдЖрд▓рд╕реА рд╣рдЯрд╛рдиреЗ:
рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдиреЙрди-рд░реВрдЯ рдкреЗрдпрд░рд┐рдВрдЧ рд╣рд╛рдЗрдк рдиреЛрдб рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп, рдиреЛрдб рдХреЛ рд╣реАрдк рд╕реЗ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЪрд╛рдЗрд▓реНрдб рдиреЛрдбреНрд╕ рдХреЛ рдореБрдЦреНрдп рд╣реАрдк рдХреЗ рдСрдХреНрд▓рд┐рд╕реНрдЯ рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рджрд░рдЕрд╕рд▓, Lazy Pairing Heap рдХреЗ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ, Pairing Heap рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдФрд░ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдиреЛрдбреНрд╕ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ: O (log N) рд╕реЗ O (1) рддрдХред
рдпрд╣ рд╕рдм, рдФрд░ рдиреАрдЪреЗ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реЗрдЧреА:
[реж] рдЬреЗрдорд▓реЙрдХ рдЧрд┐рддреВрдм рдкреЗрдЬ[рез] рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдкреНрд╕ рдкрд░ рдореВрд▓ рд▓реЗрдЦ[реи] рдЖрд▓рд╕реА рдЗрдореНрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдкреЗрдпрд░рд┐рдВрдЧ рд╣реАрдкреНрд╕ рдкрд░ рдореВрд▓ рд▓реЗрдЦ[рей] рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, C ++, Asm, 'рд▓реЛ рд▓реЗрд╡рд▓' рдФрд░ рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ!рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...