рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЙрдкрдХрд░рдг рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛: рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди

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

рдкреНрд░рд╢реНрди: рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕рд░рдгреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ рддреЗрдЬреА рд╕реЗ рдЕрдЬрдЧрд░ рдХреЛ рдХреНрдпреЛрдВ рдЦреЛрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣рд╛рдВ рдХреЛрдИ рдмрд╛рдЗрдирд░реА рдЦреЛрдЬ рдирд╣реАрдВ рд╣реИред рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдУ (рд▓реЙрдЧ (рдПрди)) рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдореЙрд░реНрдЯ рд╣реИред O (1) - рдЪреВрдБрдХрд┐ рдЕрдЬрдЧрд░ рддрд╛рдирд╛рд╢рд╛рд╣реА рд╣реИрд╢ рдЯреЗрдмрд▓ рдирд╛рдордХ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

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


рд▓реЗрдЦ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рдпрджрд┐ рдЖрдк рдЙрди рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдЧреАрдХрд░рдг рдХрд┐рд╕реА рднреА рд╕реНрд░реЛрдд рдореЗрдВ рд╡рд░реНрдЧреАрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИ (рдХреБрдЫ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ)ред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд▓рдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PHP / Python / C ++ рдореЗрдВ рдПрдХ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рдпрд╛ .Net / рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рд╕реВрдЪреАред

рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред

1. рдРрд░реЗ - рдпрд╣ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕рд░рдгреА рд╣реИред


рд╕рд░рдгреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдЗрдВрдЯрд░рдлреЗрд╕:

рд╕рд░рдгреА рдореЗрдВ рдЦреЛрдЬ рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ => рдЬрдЯрд┐рд▓рддрд╛ рдУ (рдПрди) рджреНрд╡рд╛рд░рд╛ рдЫрд╛рдБрдЯрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд┐рд╕реА рдЖрдЗрдЯрдо рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкрд╣реБрдБрдЪ рд╕рдордп рдХреНрдпреЛрдВ рд╣реИ? рд╕рд░рдгреА рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рд░рдгреА рдХреЗ j-th рддрддреНрд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ => рдХреЗ рдПрдХ рдирд┐рд░рдВрддрд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд╣рдореЗрдВ рдмрд╕ рд╕рд░рдгреА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рд▓реЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рддрддреНрд╡ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдЗрд╕рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕рд░рд▓ рдЧрдгрдирд╛ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗрд╡рд▓ рд╕рд░рдгреА рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рддрддреНрд╡ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред
*aj = beginPointer + elementSize*j-1


рдЙрджрд╛рд╣рд░рдг:
/++: int i_array[10];
java/C#: int[10] i_array;
Python: array.array
php: SplFixedArray


2. рд╕реВрдЪреАред


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

рд╕реВрдЪреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

рд╕реВрдЪреА рдЖрдпреЛрдЬрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕:

рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреБрдЫ (рдЬреНрдпрд╛рджрд╛рддрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИ) рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдпреЗ рджреЛ рдЗрдВрдЯрд░рдлреЗрд╕ "рдЪрд┐рдкрдХреЗ" рдФрд░ "рдЫрдВрдЯрдиреА" рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЬрдЧрд░ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реВрдЪреА рдХреА рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реВрдЪрдХрд╛рдВрдХ рд╕реЗ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдХреЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдЗрдП рд╕реВрдЪреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

2.1 рдПрдХрд▓ рд▓рд┐рдВрдХреНрдб рд╕реВрдЪреА

рдЫрд╡рд┐
рдПрдХ рдпреВрдирд┐рдбрд╛рдпрд░реЗрдХреНрд╢рдирд▓ рд▓рд┐рдВрдХреНрдб рд▓рд┐рд╕реНрдЯ (рд╕рд┐рдВрдЧрд▓ рд▓рд┐рд╕реНрдЯреЗрдб рд▓рд┐рд╕реНрдЯ) рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдФрд░ рдЕрдЧрд▓реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХрд▓ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреГрдкрдпрд╛ => рдПрдХ рдирдП рддрддреНрд╡ рдХреЛ рдмрд╕ рдХрдиреЗрдХреНрдЯ рдХреА рдЧрдИ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рддреБрдЪреНрдЫ рд╣реИред

рд╕рдВрдЪрд╛рд▓рди рдХреА рд▓рд╛рдЧрдд:

рдЙрджрд╛рд╣рд░рдг:
/++: std::list //Bidirectional Linked List
Java: java.util.LinkedList
c#: System.Collection.Generic.LinkedList //Bidirectional Linked List
php: SplDoublyLinkedList // Bidirectional Linked List


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

реи.реи рд╡реЗрдХреНрдЯрд░

рд╡реЗрдХреНрдЯрд░ рдПрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕рд░рдгреА рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪреА рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рд╕рдВрдЪрд╛рд▓рди рдХреА рд▓рд╛рдЧрдд:


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

рдЙрджрд╛рд╣рд░рдг:
/++: std::vector
Java: java.util.ArrayList
C#: System.Collections.ArrayList, System.Collections.List
Python: list


3. рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА (рд╢рдмреНрджрдХреЛрд╢ / рдорд╛рдирдЪрд┐рддреНрд░)


рдХреБрдВрдЬреА рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ => рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗред рддрддреНрд╡ (рдорд╛рди) рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд╛рдмрд┐рдпрд╛рдБ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рддрд╛рд░ / рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрддреНрд╡реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ / рд╣рдЯрд╛рдХрд░ рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрдВрдЯрд░рдлреЗрд╕:

рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХреЗ рджреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВ: рд╣реИрд╢рдкреИрдк рдФрд░ рдмрд╛рдЗрдирд░реА рдЯреНрд░реАред

3.1 рд╣реИрд╢ рдЯреЗрдмрд▓

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

рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдкрд╛рдардХ рдЗрд╕ рдордзреБрдореЗрд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред

рдпреЗ рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ: рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдо рд▓рдВрдмреА рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдЗрд╕рд╕реЗ рдЕрдиреБрдЪрд┐рдд рд╕реНрдореГрддрд┐ рд▓рд╛рдЧрдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдЖрдорддреМрд░ рдкрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
index = f(key, arrayLength)


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

рдЪреЗрдирд┐рдВрдЧ:
рдЫрд╡рд┐
рд╕рд░рдгреА H рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖ рдХреБрдВрдЬреА рдХреЗ рд╕рдорд╛рди рд╣реИрд╢ рдорд╛рди рдХреЗ рдЕрдиреБрд░реВрдк рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдпреБрдЧреНрдореЛрдВ рдХреА рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреА (рд╢реНрд░реГрдВрдЦрд▓рд╛) рдХрд╛ рд╕реВрдЪрдХ рд╣реИред рдЯрдХрд░рд╛рд╡ рдмрд╕ рдПрдХ рддрддреНрд╡ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪреЗрди рдХреЗ рдЙрджреНрднрд╡ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рдЦреБрд▓рд╛ рдкрддрд╛:

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

рд╕рдВрдЪрд╛рд▓рди рдХреА рд▓рд╛рдЧрдд:

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

рдЙрджрд╛рд╣рд░рдг:
c++: QHash boost::unordered_map/boost::unordered_set (by NickLion )
java: java.util.HashMap<K,V>
c#: System.Collections.Hashtable, System.Collections.Dictionary<K, V>
python: dict
php: array()


3.2 рдмрд╛рдЗрдирд░реА рдЯреНрд░реА

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

рдкрд░рд┐рднрд╛рд╖рд╛: рдмрд╛рдЗрдирд░реА рдЯреНрд░реА - рдПрдХ рдкреЗрдбрд╝ рдЬреИрд╕реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╡рдВрд╢рдЬ (рдмрдЪреНрдЪреЗ) рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд╣рд▓реЗ рдХреЛ рдореВрд▓ рдиреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрдЪреНрдЪреЛрдВ рдХреЛ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рд╡рд╛рд░рд┐рд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдиреЛрдб рдХрд╛ рдХреЛрдИ рд╡рдВрд╢рдЬ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкрддреНрддреА рдиреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЦреЛрдЬ рдкреЗрдбрд╝ рд▓реЗрддреЗ рд╣реИрдВ: рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдПрдХ рдХрдВрдЯреЗрдирд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рддреАрди рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ: рдбреЗрдЯрд╛ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдбреЗрдЯрд╛ (рдбреЗрдЯрд╛ рдореЗрдВ рддрддреНрд╡ рдФрд░ рдХреБрдВрдЬреА рдореВрд▓реНрдп рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ), рдмрд╛рдПрдВ - рдмрд╛рдПрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдиреЛрдб рдФрд░ рджрд╛рдПрдВ рдХрд╛ рд▓рд┐рдВрдХ - рджрд╛рдПрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдиреЛрдб рд╕реЗ рд▓рд┐рдВрдХред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ: рдХреБрдВрдЬреА [рдмрд╛рдПрдВ [X]] <рдХреБрдВрдЬреА [X] [рдХреБрдВрдЬреА [рджрд╛рдИрдВ рдУрд░ [X]] - рдпрд╛рдиреА, рдореВрд▓ рдиреЛрдб рдХреА рдбреЗрдЯрд╛ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрд╛рдПрдВ рдмреЗрдЯреЗ рдХреА рдбреЗрдЯрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдмрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ рдФрд░ рджрд╛рдИрдВ рдУрд░ рдХреА рдбреЗрдЯрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдХрдо рдвреАрд▓реА рд╣реЛрддреА рд╣реИрдВред рдПрдХ рддрддреНрд╡ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдкреЗрдбрд╝ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рд░ рдмрд╛рд░ рд╡рд░реНрддрдорд╛рди рдиреЛрдб рдХреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдХреБрдВрдЬреА рдХреЗ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░, рддреБрд▓рдирд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЧрдгрдирд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЦреЛрдЬ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдУ (рд▓реЙрдЧрдПрди) рд╣реИред рдПрдХ рдирдпрд╛ рдиреЛрдб рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рд╣рдо рдПрдХ рд╕рдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдпрд╣ рдирд╣реАрдВ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдирдпрд╛ рддрддреНрд╡ рдХрд╣рд╛рдБ рд╣реИред рд╕рдЪ рд╣реИ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдРрд╕реЗ рдкреЗрдбрд╝реЛрдВ рдХреЛ рдЕрднреА рднреА рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред рдПрдХ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдкрд╛рдардХ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдХреЗ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред

рд╕рдВрдЪрд╛рд▓рди рдХреА рд▓рд╛рдЧрдд:

рдЙрджрд╛рд╣рд░рдг:
c++: std::map, std::set
java: java.util.TreeMap<K,V>, java.util.Map<K,V> -
c#: :( SortedDictionary(by NickLion )
python: -
php: -


4. рд╕реЗрдЯред


рддрддреНрд╡реЛрдВ рдХрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕реЗрдЯред рд╕реЗрдЯ рдХреЛ рдПрдХ рдмрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдирд┐рд░реНрдорд╛рдг рдкрд░, рдФрд░ рдмрд╛рдж рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕рдореЗрдВ рд╕реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдпрд╛ рд╕реЗрдЯ рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЛ рдмрджрд▓рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдПрдХ рд╣реИрд╢ рдЯреЗрдмрд▓ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рд╕реЗрдЯ рдХреЗрд╡рд▓ рдПрдХ рдЧрдгрд┐рддреАрдп рд╕реЗрдЯ рдХреЗ рдЕрдореВрд░реНрддрди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЕрджреНрд╡рд┐рддреАрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред ( рдПрдЯреАрдкреА рджрд╛рдирд▓реА )
рдЙрджрд╛рд╣рд░рдг:
c++: std::set
java: java.util.Set
C#: System.Collections.HashSet
python: set/frozenset


рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛рддреНрдордХ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
рдЫрд╡рд┐

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ:
рдЫрд╡рд┐

рд╕рдВрджрд░реНрдн:


рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ (рдПрди)
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ (rus)
рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реА (рдПрди)
рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдЯреНрд░реА (rus)

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓реЗрдЦрдХ рдиреЗ PHP рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдПрд╕рдЯреАрдПрд▓ рдкрд░ рдбреЙрдХ рдкрдврд╝рд╛ред

Updред рд╣рд╛рдБ, рдЕрдЬрдЧрд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрдиреБрдХреНрд░рдорд┐рдд рд╕рд░рдгреА (array.array) рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдЬрд╛рджреВрдЧрд░ред рдЬреИрд╕рд╛ рдХрд┐ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рдХрд╛рд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИ, рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

Updред рдкрд╛рда рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред idemura , zibada , tzlom , SiGMan , freeOne , Slaffko , korvindest , Laplace , рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Updред
рдЬрд┐рдмрджрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ:
рд╣рд╛рдВ, рд╕рд┐рд░реНрдл рдорд╛рдирдЪрд┐рддреНрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд▓реЗрдЦ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ, рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рд░рд╛рдЦ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдкреЗрдбрд╝реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред (O (logN) рдмрдирд╛рдо O (1))ред

рдЙрдиреНрд╣реЗрдВ рддрдм рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ, рдХрд┐ рдЖрдк рдорд╛рдирдЪрд┐рддреНрд░ (рдпрд╛ рд╕реЗрдЯ) рддрддреНрд╡реЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
- рдХрд┐рд╕реА рднреА рдЧреИрд░-рдЧрд╛рд░рдВрдЯреАрдХреГрдд рдХреНрд░рдо рдореЗрдВ (рд╣реИрд╢рдкреЙрдк, рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрд╢);
- рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХреНрд░рдо рдореЗрдВ (LinkedHashMap, рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрд╢);
- рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдЖрд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ + рджреА рдЧрдИ рд╕реАрдорд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

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

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


All Articles