рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рдирдорд╕реНрддреЗ, рд╣рдмрд░! рдореИрдВ рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдБ
"рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ".

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

рдХреНрдпрд╛ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрддрдиреЗ рдкреБрд░рд╛рдиреЗ рдФрд░ рдЗрддрдиреЗ рдЙрдмрд╛рдК рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ, рд╢реЛрдз рдкрддреНрд░реЛрдВ рдФрд░ рдкреБрд╕реНрддрдХреЛрдВ рдХреЗ рдмрд╛рд╣рд░ рд╕рдордЭрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛?

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

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

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

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

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

рдЖрдкрдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд▓реЗрдЦ рдХреЛ 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

  • рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдФрд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдШрдЯрдХреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
  • рдХреНрд╡реЗрд░реА рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
  • рд▓реЗрдирджреЗрди рдФрд░ рдмрдлрд░ рдкреВрд▓ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдЕрд╡рд▓реЛрдХрди

рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдкрд░ рд╡рд╛рдкрд╕

рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ (рджреВрд░, рдмрд╣реБрдд рджреВрд░ рдХрд┐рд╕реА рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛ рдореЗрдВ...), рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрддрд╛ рдерд╛ рдХрд┐ рд╡реЗ рдХрд┐рддрдиреЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдХреЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рдЕрдкрдиреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рджрд┐рд▓ рд╕реЗ рдЬрд╛рдирддреЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдзреАрдореЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕реАрдкреАрдпреВ рдФрд░ рдореЗрдореЛрд░реА рдХреЛ рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗред

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

O(1) рдмрдирд╛рдо O(n2)

рдЖрдЬрдХрд▓, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ... рдФрд░ рд╡реЗ рд╕рд╣реА рд╣реИрдВ!

рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВ (рдореИрдВ рд╣рдЬрд╛рд░реЛрдВ рдХреА рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рдпрд╛ рдпрджрд┐ рдЖрдк рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рджреЛрдиреЛрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛! рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдд рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдиреЗ рджреВрдБрдЧрд╛ред рдЗрд╕рд╕реЗ рд╣рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд▓рд╛рдЧрдд-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдХреВрд▓рди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА (рд▓рд╛рдЧрдд рдЖрдзрд╛рд░рд┐рдд рдЗрд╖реНрдЯрддрдореАрдХрд░рдг).

рд╕рдВрдХрд▓реНрдкрдирд╛

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ "рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ O(some_function())" рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП some_function(a_certain_amount_of_data) рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

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

  • O(1) рдпрд╛ рд╕реНрдерд┐рд░ рдЬрдЯрд┐рд▓рддрд╛ рд╕реНрдерд┐рд░ рд░рд╣рддреА рд╣реИ (рдЕрдиреНрдпрдерд╛ рдЗрд╕реЗ рд╕реНрдерд┐рд░ рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛)ред
  • O(рд▓реЙрдЧ рдЗрди(n)) рдЕрд░рдмреЛрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднреА рдХрдо рд░рд╣рддрд╛ рд╣реИ.
  • рд╕рдмрд╕реЗ рдмрдбрд╝реА рдХрдард┐рдирд╛рдИ - O(n2), рдЬрд╣рд╛рдВ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╣реИ.
  • рдЕрдиреНрдп рджреЛ рдЬрдЯрд┐рд▓рддрд╛рдПрдБ рднреА рдЙрддрдиреА рд╣реА рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг

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

  • O(1) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 1 рдСрдкрд░реЗрд╢рди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(log(n)) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 7 рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 2 рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n*log(n)) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 14 рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n2) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рдЖрдкрдХреЛ 4 рдСрдкрд░реЗрд╢рди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛

O(1) рдФрд░ O(n2) рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрдбрд╝рд╛ рд▓рдЧрддрд╛ рд╣реИ (4 рдорд┐рд▓рд┐рдпрди рдСрдкрд░реЗрд╢рди) рд▓реЗрдХрд┐рди рдЖрдк рдЕрдзрд┐рдХрддрдо 2 рдПрдордПрд╕ рдЦреЛ рджреЗрдВрдЧреЗ, рдмрд╕ рдЕрдкрдиреА рдЖрдБрдЦреЗрдВ рдЭрдкрдХрд╛рдиреЗ рдХрд╛ рд╕рдордпред рджрд░рдЕрд╕рд▓, рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд░реЛрдбрд╝реЛрдВ рдСрдкрд░реЗрд╢рди. рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХрдИ рдЖрдИрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред

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

  • O(1) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 1 рдСрдкрд░реЗрд╢рди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(log(n)) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 14 рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдореЗрдВ рдЖрдкрдХреЛ 1 рдСрдкрд░реЗрд╢рди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n*log(n)) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рдЖрдкрдХреЛ 14 рдСрдкрд░реЗрд╢рдиреЛрдВ рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛
  • O(n2) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рдЖрдкрдХреЛ 1 рдСрдкрд░реЗрд╢рди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛

рдореИрдВрдиреЗ рдЧрдгрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ O(n2) рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХреЙрдлрд╝реА рдкреАрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ (рджреЛ рднреА!)ред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдПрдХ рдФрд░ 0 рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЭрдкрдХреА рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ред

рдЖрдЗрдП рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рдПрдВ

рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП:

  • рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдЯреЗрдмрд▓ рд▓реБрдХрдЕрдк O(1) рдореЗрдВ рдПрдХ рддрддреНрд╡ рдвреВрдВрдврддрд╛ рд╣реИред
  • рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдкреЗрдбрд╝ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рд╕реЗ O(log(n)) рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВред
  • рдХрд┐рд╕реА рд╕рд░рдгреА рдХреЛ рдЦреЛрдЬрдиреЗ рд╕реЗ O(n) рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
  • рд╕рд░реНрд╡реЛрддреНрддрдо рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ O(n*log(n)) рд╣реЛрддреА рд╣реИред
  • рдПрдХ рдЦрд╝рд░рд╛рдм рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ O(n2) рд╣реЛрддреА рд╣реИред

рдиреЛрдЯ: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧреЛрдВ рдореЗрдВ рд╣рдо рдЗрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред

рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдХрдИ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:

  • рдФрд╕рдд рдорд╛рдорд▓рд╛ рдкрд░рд┐рджреГрд╢реНрдп
  • рдмреЗрд╣рддрд░реАрди рдкрд░рд┐рджреГрд╢реНрдп
  • рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐

рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЕрдХреНрд╕рд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИред

рдореИрдВ рдХреЗрд╡рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓рддрд╛ рдЗрд╕ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ:

  • рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдореЗрдореЛрд░реА рдЦрдкрдд
  • рдбрд┐рд╕реНрдХ I/O рдЦрдкрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо

рдмреЗрд╢рдХ, n2 рд╕реЗ рднреА рдмрджрддрд░ рдЬрдЯрд┐рд▓рддрд╛рдПрдБ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

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

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

рдорд░реНрдЬрд╝ рд╕реЙрд░реНрдЯ

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

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

рдорд░реНрдЬ

рдХрдИ рдЙрдкрдпреЛрдЧреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рддрд░рд╣, рдорд░реНрдЬ рд╕реЙрд░реНрдЯ рдПрдХ рдЯреНрд░рд┐рдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ: рдЖрдХрд╛рд░ рдПрди/2 рдХреЗ 2 рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдПрд░реЗ рдХреЛ рдПрди-рдПрд▓рд┐рдореЗрдВрдЯ рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдПрд░реЗ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдХреЗрд╡рд▓ рдПрди рдСрдкрд░реЗрд╢рди рдХреА рд▓рд╛рдЧрдд рдЖрддреА рд╣реИред рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдорд░реНрдЬрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ:

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдВрддрд┐рдо рдХреНрд░рдордмрджреНрдз 8-рддрддреНрд╡ рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ 2 4-рддрддреНрд╡ рд╕рд░рдгреА рдкрд░ рдПрдХ рдмрд╛рд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ рджреЛрдиреЛрдВ 4-рддрддреНрд╡ рд╕рд░рдгрд┐рдпрд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд░рдордмрджреНрдз рд╣реИрдВ:

  • 1) рдЖрдк рджреЛрдиреЛрдВ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рджреЛ рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВ (рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрддрдорд╛рди = рдкрд╣рд▓реЗ)
  • 2) рдлрд┐рд░ рдЗрд╕реЗ 8 рддрддреНрд╡ рд╕рд░рдгреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд▓реЗрдВ
  • 3) рдФрд░ рд╕рд░рдгреА рдореЗрдВ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рддрддреНрд╡ рд▓рд┐рдпрд╛ рдерд╛
  • рдФрд░ 1,2,3 рдХреЛ рддрдм рддрдХ рджреЛрд╣рд░рд╛рдПрдБ рдЬрдм рддрдХ рдЖрдк рдХрд┐рд╕реА рдПрдХ рд╕рд░рдгреА рдХреЗ рдЕрдВрддрд┐рдо рддрддреНрд╡ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪ рдЬрд╛рддреЗред
  • рдлрд┐рд░ рдЖрдк рдЕрдиреНрдп рд╕рд░рдгреА рдХреЗ рд╢реЗрд╖ рддрддреНрд╡реЛрдВ рдХреЛ 8 рддрддреНрд╡реЛрдВ рд╡рд╛рд▓реА рд╕рд░рдгреА рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛрдиреЛрдВ 4-рддрддреНрд╡ рд╕рд░рдгреА рдХреНрд░рдордмрджреНрдз рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рд╕рд░рдгреА рдореЗрдВ "рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ" рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред

рдЕрдм рдЬрдм рд╣рдо рдЪрд╛рд▓ рдХреЛ рд╕рдордЭ рдЧрдП рд╣реИрдВ, рддреЛ рдорд░реНрдЬ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЫрджреНрдо рдХреЛрдб рдпрд╣рд╛рдВ рд╣реИ:

array mergeSort(array a)
   if(length(a)==1)
      return a[0];
   end if

   //recursive calls
   [left_array right_array] := split_into_2_equally_sized_arrays(a);
   array new_left_array := mergeSort(left_array);
   array new_right_array := mergeSort(right_array);

   //merging the 2 small ordered arrays into a big one
   array result := merge(new_left_array,new_right_array);
   return result;

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

  • рд╡рд┐рднрд╛рдЬрди рдЪрд░рдг, рдЬрд╣рд╛рдВ рд╕рд╛рд░рдгреА рдХреЛ рдЫреЛрдЯреЗ рд╕рд╛рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдЪрд░рдг рд╡рд╣ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдмрдбрд╝реА рд╕рд░рдгреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреА рд╕рд╛рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдВрдШ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред

рд╡рд┐рднрд╛рдЬрди рдЪрд░рдг

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рд╡рд┐рднрд╛рдЬрди рдЪрд░рдг рдореЗрдВ, рд╕рд╛рд░рдгреА рдХреЛ 3 рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХрд╛рддреНрдордХ рд╕рд╛рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪрд░рдгреЛрдВ рдХреА рдФрдкрдЪрд╛рд░рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЙрдЧ(рдПрди) рд╣реИ (рдЪреВрдВрдХрд┐ рдПрди=8, рд▓реЙрдЧ(рдПрди) = 3)ред

рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рд╣реИ?

рдореИрдВ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рд╣реВрдБ! рдПрдХ рд╢рдмреНрдж рдореЗрдВ - рдЧрдгрд┐рдд. рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдореВрд▓ рд╕рд░рдгреА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ 2 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЪрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рддрдиреА рдмрд╛рд░ рдЖрдк рдореВрд▓ рд╕рд░рдгреА рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд▓рдШреБрдЧрдгрдХ (рдЖрдзрд╛рд░ 2) рдХреА рд╕рдЯреАрдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИред

рдЫрдБрдЯрд╛рдИ рдЪрд░рдг

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдЪрд░рдг рдореЗрдВ, рдЖрдк рдПрдХрд╛рддреНрдордХ (рдПрдХрд▓-рддрддреНрд╡) рд╕рд░рдгрд┐рдпреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдЖрдк рдПрдХрд╛рдзрд┐рдХ рдорд░реНрдЬ рдСрдкрд░реЗрд╢рди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреБрд▓ рд▓рд╛рдЧрдд N = 8 рдСрдкрд░реЗрд╢рди рд╣реИ:

  • рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ 4 рдорд░реНрдЬ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 2 рдСрдкрд░реЗрд╢рди рдХреА рд▓рд╛рдЧрдд рдЖрддреА рд╣реИ
  • рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ 2 рдорд░реНрдЬ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 4 рдСрдкрд░реЗрд╢рди рдХреА рд▓рд╛рдЧрдд рд╣реИ
  • рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ 1 рдорд░реНрдЬ рд╣реИ рдЬрд┐рд╕рдХреА рд▓рд╛рдЧрдд 8 рдСрдкрд░реЗрд╢рди рд╣реИрдВ

рдЪреВрдБрдХрд┐ рд▓реЙрдЧ(рдПрди) рдЪрд░рдг рд╣реИрдВ, рдХреБрд▓ рд▓рд╛рдЧрдд рдПрди * рд▓реЙрдЧ (рдПрди) рд╕рдВрдЪрд╛рд▓рди.

рдорд░реНрдЬ рд╕реЙрд░реНрдЯ рдХреЗ рд▓рд╛рдн

рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЗрддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрдпреЛрдВ рд╣реИ?

рдХреНрдпреЛрдВрдХрд┐:

  • рдЖрдк рдореЗрдореЛрд░реА рдлрд╝реБрдЯрдкреНрд░рд┐рдВрдЯ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдирдП рдРрд░реЗ рди рдмрдирд╛рдПрдВ рдмрд▓реНрдХрд┐ рд╕реАрдзреЗ рдЗрдирдкреБрдЯ рдРрд░реЗ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред

рдиреЛрдЯ: рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ in-рдЬрдЧрд╣ (рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХреЗ рдмрд┐рдирд╛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛)ред

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

рдиреЛрдЯ: рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдмрд╛рд╣рд░реА рдкреНрд░рдХрд╛рд░.

  • рдЖрдк рдЗрд╕реЗ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ/рдереНрд░реЗрдбреНрд╕/рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рддрд░рд┐рдд рдорд░реНрдЬ рд╕реЙрд░реНрдЯ рдкреНрд░рдореБрдЦ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ Hadoop (рдЬреЛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдореЗрдВ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИ)ред

  • рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реАрд╕реЗ рдХреЛ рд╕реЛрдиреЗ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ!)ред

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

рдРрд░реЗ, рдЯреНрд░реА рдФрд░ рд╣реИрд╢ рдЯреЗрдмрд▓

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

рд╕рд░рдгреА

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

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рдпрд╣ 2-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рд╡рд╛рд▓реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:

  • рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдЗрдХрд╛рдИ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ
  • рдХреЙрд▓рдо рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрдХрд╛рдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред
  • рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ (рдкреВрд░реНрдгрд╛рдВрдХ, рд╕реНрдЯреНрд░рд┐рдВрдЧ, рджрд┐рдирд╛рдВрдХ...) рдХрд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдпреВрдХреЗ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рдкрдВрдХреНрддрд┐ рдпреВрдХреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЛ рдПрди рд▓реЗрдирджреЗрди рдХрд╛ рдЦрд░реНрдЪ рдЖрдПрдЧрд╛рдЬрд╣рд╛рдВ N - рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЬреЛ рдЦрд╝рд░рд╛рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЕрдм рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреЗрдбрд╝реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВред

рдзреНрдпрд╛рди рджреЗрдВ: рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рд░рдгреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдвреЗрд░-рд╕рдВрдЧрдард┐рдд рдЯреЗрдмрд▓ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕-рд╕рдВрдЧрдард┐рдд рдЯреЗрдмрд▓ред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╕реНрддрдВрднреЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рдХреЛ рддреБрд░рдВрдд рдвреВрдВрдврдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреНрд░реА рдФрд░ рдЗрдВрдбреЗрдХреНрд╕

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

  • рдмрд╛рдПрдБ рдЙрдкрд╡реГрдХреНрд╖ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ
  • рджрд╛рдПрдБ рдЙрдкрд╡реГрдХреНрд╖ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рд╕реЗ рдХрдо

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рджреГрд╢реНрдпрд╛рддреНрдордХ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ

рд╡рд┐рдЪрд╛рд░

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рдЗрд╕ рдкреЗрдбрд╝ рдореЗрдВ N = 15 рддрддреНрд╡ рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ 208 рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ:

  • рдореИрдВ рдореВрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреА рдХреБрдВрдЬреА 136 рд╣реИред 136<208 рдХреЗ рдмрд╛рдж рд╕реЗ, рдореИрдВ рдиреЛрдб 136 рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдЙрдкрд╡реГрдХреНрд╖ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред
  • 398>208 рдЗрд╕рд▓рд┐рдП рдореИрдВ рдиреЛрдб 398 рдХреЗ рдмрд╛рдПрдБ рдЙрдкрд╡реГрдХреНрд╖ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ
  • 250>208 рдЗрд╕рд▓рд┐рдП рдореИрдВ рдиреЛрдб 250 рдХреЗ рдмрд╛рдПрдБ рдЙрдкрд╡реГрдХреНрд╖ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ
  • 200<208, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдиреЛрдб 200 рдХрд╛ рджрд╛рдпрд╛рдВ рдЙрдкрд╡реГрдХреНрд╖ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди 200 рдХрд╛ рдХреЛрдИ рджрд╛рдпрд╛рдВ рдЙрдкрд╡реГрдХреНрд╖ рдирд╣реАрдВ рд╣реИ, рдореВрд▓реНрдп рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдпрд╣ рд╕рд╣реА рд╕рдмрдЯреНрд░реА 200 рдореЗрдВ рд╣реЛрдЧрд╛)ред

рдЕрдм рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ 40 рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ

  • рдореИрдВ рдореВрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреА рдХреБрдВрдЬреА 136 рд╣реИред 136 > 40 рдХреЗ рдмрд╛рдж рд╕реЗ, рдореИрдВ рдиреЛрдб 136 рдХреЗ рдмрд╛рдПрдВ рдЙрдкрд╡реГрдХреНрд╖ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВред
  • 80 > 40, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдиреЛрдб 80 рдХреЗ рдмрд╛рдПрдБ рдЙрдкрд╡реГрдХреНрд╖ рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ
  • 40=40, рдиреЛрдб рдореМрдЬреВрдж рд╣реИ. рдореИрдВ рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рдкрдВрдХреНрддрд┐ рдЖрдИрдбреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ (рдЪрд┐рддреНрд░ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рджреА рдЧрдИ рдкрдВрдХреНрддрд┐ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред
  • рдкрдВрдХреНрддрд┐ рдЖрдИрдбреА рдЬрд╛рдирдиреЗ рд╕реЗ рдореБрдЭреЗ рдареАрдХ-рдареАрдХ рдкрддрд╛ рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╣рд╛рдБ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рддреБрд░рдВрдд рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБред

рдЕрдВрдд рдореЗрдВ, рджреЛрдиреЛрдВ рдЦреЛрдЬреЛрдВ рд╕реЗ рдореБрдЭреЗ рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ рдХреЗ рд╕реНрддрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЪреБрдХрд╛рдиреА рдкрдбрд╝реЗрдЧреАред рдпрджрд┐ рдЖрдк рдорд░реНрдЬ рд╕реЙрд░реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднрд╛рдЧ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд▓реЙрдЧ (рдПрди) рд╕реНрддрд░ рд╣реИрдВред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдЦреЛрдЬ рд▓рд╛рдЧрдд рд▓реЙрдЧ(рдПрди), рдЗрддрдирд╛ рдЦрд░рд╛рдм рднреА рдирд╣реАрдВ!

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

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

  • рдЕрдЧрд░ рдЖрдк рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпреВрдХреЗ рдореЗрдВ рдХреМрди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
  • рдЖрдк рдЙрд╕ рдиреЛрдб рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рдЧреНрд░реЗрдЯ рдмреНрд░рд┐рдЯреЗрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ
  • "рдпреВрдХреЗрдиреЛрдб" рдХреЗ рдЕрдВрджрд░ рдЖрдкрдХреЛ рдпреВрдХреЗ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕реНрдерд╛рди рдорд┐рд▓реЗрдЧрд╛ред

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

рдЖрдк рдлрд╝реАрд▓реНрдб рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдореВрд╣ (рд╕реНрдЯреНрд░рд┐рдВрдЧ, рд╕рдВрдЦреНрдпрд╛, 2 рд▓рд╛рдЗрдиреЗрдВ, рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рджрд┐рдирд╛рдВрдХ...) рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдЯреНрд░реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдВрдЬрд┐рдпреЛрдВ (рдпрд╛рдиреА рдлрд╝реАрд▓реНрдб рд╕рдореВрд╣) рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рддрд╛рдХрд┐ рдЖрдк рд╕реЗрдЯ рдХрд░ рд╕рдХреЗрдВ рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдСрд░реНрдбрд░ рдХрд░реЗрдВ (рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛ рд╣реИ)ред

рдмреА+рдЯреНрд░реАрдЗрдВрдбреЗрдХреНрд╕

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдкреЗрдбрд╝ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ рджреЛ рдорд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХрд╛рдзрд┐рдХ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ. рдЗрд╕рдХреА рд▓рд╛рдЧрдд O(N) рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкреЗрдбрд╝ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЬрд╛рдВрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрди рджреЛ рдорд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреЗрдбрд╝ рдХреЗ рдХреНрд░рдордмрджреНрдз рдЯреНрд░реИрд╡рд░реНрд╕рд▓ рдХреЗ рд╕рд╛рде)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдСрдкрд░реЗрд╢рди рдбрд┐рд╕реНрдХ I/O рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдкреВрд░рд╛ рдкреЗрдбрд╝ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд░реЗрдВрдЬ рдЕрдиреБрд░реЛрдз. рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзреБрдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд┐рдЫрд▓реЗ рдЯреНрд░реА рдХреЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ B+Tree рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреА+рдЯреНрд░реА рдкреЗрдбрд╝ рдореЗрдВ:

  • рдХреЗрд╡рд▓ рдирд┐рдореНрдирддрдо рдиреЛрдбреНрд╕ (рдкрддреНрддреЗ) рджреБрдХрд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА (рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕реНрдерд╛рди)
  • рд╢реЗрд╖ рдиреЛрдб рдпрд╣рд╛рдВ рд╣реИрдВ рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЗ рджреМрд░рд╛рди.

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рдиреЛрдб рд╣реИрдВ (рджреЛ рдмрд╛рд░)ред рджрд░рдЕрд╕рд▓, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЛрдбреНрд╕, "рдирд┐рд░реНрдгрдп рдиреЛрдбреНрд╕" рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕рд╣реА рдиреЛрдб рдвреВрдВрдврдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ (рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рдЦреЛрдЬ рдЬрдЯрд┐рд▓рддрд╛ рдЕрднреА рднреА O(log(N)) рд╣реИ (рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рд╕реНрддрд░ рд╣реИ)ред рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдкрд░ рдиреЛрдб рдЕрдкрдиреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ.

рдЗрд╕ рдмреА+рдЯреНрд░реА рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЖрдк 40 рдФрд░ 100 рдХреЗ рдмреАрдЪ рдорд╛рди рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВ:

  • рдЖрдкрдХреЛ рдмрд╕ 40 (рдпрд╛ рдпрджрд┐ 40 рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рддреЛ 40 рдХреЗ рдмрд╛рдж рдирд┐рдХрдЯрддрдо рдорд╛рди) рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдкреЗрдбрд╝ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛ред
  • рдлрд┐рд░ рд╕реАрдзреЗ рд╡рд╛рд░рд┐рд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 40 рд╡рд╛рд░рд┐рд╕ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк 100 рддрдХ рди рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЛ рдПрдо рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдорд┐рд▓рддреЗ рд╣реИрдВ рдФрд░ рдкреЗрдбрд╝ рдореЗрдВ рдПрди рдиреЛрдб рд╣реИрдВред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЛрдб рдвреВрдБрдврдиреЗ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рд▓реЙрдЧ (рдПрди) рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдпрд╣ рдиреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдо рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рдПрдо рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдЙрдирдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдорд┐рд▓реЗрдВрдЧреЗред рдЗрд╕ рдЦреЛрдЬ рдХреА рд▓рд╛рдЧрдд рдХреЗрд╡рд▓ M+log(N) рд╣реИ рдкрд┐рдЫрд▓реЗ рдкреЗрдбрд╝ рдкрд░ рдПрди рд╕рдВрдЪрд╛рд▓рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдВрдЪрд╛рд▓рдиред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдкреВрд░рд╛ рдЯреНрд░реА (рдХреЗрд╡рд▓ рдПрдо+рд▓реЙрдЧ(рдПрди) рдиреЛрдбреНрд╕) рдкрдврд╝рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрдо рдбрд┐рд╕реНрдХ рдЙрдкрдпреЛрдЧред рдпрджрд┐ M рдЫреЛрдЯрд╛ рд╣реИ (рдЬреИрд╕реЗ 200 рдкрдВрдХреНрддрд┐рдпрд╛рдБ) рдФрд░ N рдмрдбрд╝рд╛ рд╣реИ (1 рдкрдВрдХреНрддрд┐рдпрд╛рдБ), рддреЛ рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ (рдлрд┐рд░ рд╕реЗ!) рдирдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рдмреА+рдЯреНрд░реА рдЗрдВрдбреЗрдХреНрд╕ рдореЗрдВ) рдХреЛрдИ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рдпрд╛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ:

  • рдЖрдкрдХреЛ B+Tree рдХреЗ рдЕрдВрджрд░ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рдХреНрд░рдо рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЖрдк рдмрд┐рдирд╛ рдЫрд╛рдВрдЯреЗ рдЧрдП рдкреЗрдбрд╝ рдХреЗ рдЕрдВрджрд░ рдиреЛрдбреНрд╕ рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдПрдВрдЧреЗред
  • рдЖрдкрдХреЛ B+Tree рдореЗрдВ рд╕реНрддрд░реЛрдВ рдХреА рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рд╕рдВрдЦреНрдпрд╛ рд░рдЦрдиреА рд╣реЛрдЧреА, рдЕрдиреНрдпрдерд╛ O(log(N)) рд╕рдордп рдЬрдЯрд┐рд▓рддрд╛ O(N) рдмрди рдЬрд╛рддреА рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдмреА+рдЯреНрд░реА рдХреЛ рд╕реНрд╡-рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд╕рдВрддреБрд▓рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕реНрдорд╛рд░реНрдЯ рдбрд┐рд▓реАрдЯ рдФрд░ рдЗрдВрд╕рд░реНрдЯ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдПрдХ рдХреАрдордд рд╣реЛрддреА рд╣реИ: B+ рдЯреНрд░реА рдореЗрдВ рд╕рдореНрдорд┐рд▓рди рдФрд░ рд╡рд┐рд▓реЛрдкрди рдХреА рд▓рд╛рдЧрдд O(log(N)) рд╣реЛрддреА рд╣реИред рдЗрд╕реАрд▓рд┐рдП рдЖрдкрдореЗрдВ рд╕реЗ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдиреЗ рдРрд╕рд╛ рд╕реБрдирд╛ рд╣реИ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ. рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рдХреЛ рддреЗрдЬреА рд╕реЗ рдбрд╛рд▓рдиреЗ/рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ/рд╣рдЯрд╛рдиреЗ рдХреА рдЧрддрд┐ рдХреЛ рдзреАрдорд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВрдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧреЗ O(log(N)) рдСрдкрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрдбреЗрдХреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрднрд╛рд░ рд▓реЗрди-рджреЗрди рдкреНрд░рдмрдВрдзрдХ (рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ B+рдкреЗрдбрд╝. рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ B+Tree рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдпрд╣ рд▓реЗрдЦ ╨╕ рдпрд╣ рд▓реЗрдЦ рдПрдХ рдЕрдЧреНрд░рдгреА MySQL рдбреЗрд╡рд▓рдкрд░ рд╕реЗред рд╡реЗ рджреЛрдиреЛрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ InnoDB (MySQL рдЗрдВрдЬрди) рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдиреЛрдЯ: рдПрдХ рдкрд╛рдардХ рдиреЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдХрд┐, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЕрдиреБрдХреВрд▓рди рдХреЗ рдХрд╛рд░рдг, B+ рд╡реГрдХреНрд╖ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛

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

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

  • рдХреБрдВрдЬреА рдЖрдкрдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП
  • рд╣реИрд╢ рдлрдВрдХрд╢рди рдЪрд╛рдмрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП. рдкрд░рд┐рдХрд▓рд┐рдд рдХреБрдВрдЬреА рд╣реИрд╢ рддрддреНрд╡реЛрдВ рдХрд╛ рд╕реНрдерд╛рди рджреЗрддреЗ рд╣реИрдВ (рдЬрд┐рдиреНрд╣реЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЦрдВрдбреЛрдВ ).
  • рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп. рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЛ рд╕рд╣реА рд╕реЗрдЧрдореЗрдВрдЯ рдорд┐рд▓ рдЬрд╛рдП, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддреБрд▓рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рднреАрддрд░ рд╡рд╣ рддрддреНрд╡ рдвреВрдВрдврдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред

рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ

рдЖрдЗрдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдВ:

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рднрд╛рдЧ 1)

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

  • рдпрджрд┐ рдЕрдВрддрд┐рдо рдЕрдВрдХ 0 рд╣реИ, рддреЛ рддрддреНрд╡ рдЦрдВрдб 0 рдореЗрдВ рдЖрддрд╛ рд╣реИ,
  • рдпрджрд┐ рдЕрдВрддрд┐рдо рдЕрдВрдХ 1 рд╣реИ, рддреЛ рддрддреНрд╡ рдЦрдВрдб 1 рдореЗрдВ рдЖрддрд╛ рд╣реИ,
  • рдпрджрд┐ рдЕрдВрддрд┐рдо рдЕрдВрдХ 2 рд╣реИ, рддреЛ рддрддреНрд╡ рдХреНрд╖реЗрддреНрд░ 2 рдореЗрдВ рдЖрддрд╛ рд╣реИ,
  • ...

рдореИрдВрдиреЗ рдЬрд┐рд╕ рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╡рд╣ рдХреЗрд╡рд▓ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдорд╛рдирддрд╛ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рддрддреНрд╡ 78 рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ 78 рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдЬреЛ 8 рд╣реИред
  • рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдЦрдВрдб 8 рдХреЛ рджреЗрдЦрддреА рд╣реИ, рдФрд░ рдЗрд╕реЗ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ 78 рд╣реИред
  • рд╡рд╣ рдЖрдкрдХреЛ рдЖрдЗрдЯрдо 78 рд▓реМрдЯрд╛рддреА рд╣реИ
  • рдЦреЛрдЬ рдореЗрдВ рдХреЗрд╡рд▓ 2 рдСрдкрд░реЗрд╢рди рдЦрд░реНрдЪ рд╣реЛрддреЗ рд╣реИрдВ (рдПрдХ рд╣реИрд╢ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛ рдЦрдВрдб рдХреЗ рднреАрддрд░ рддрддреНрд╡ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП)ред

рдЕрдм рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рддрддреНрд╡ 59 рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ 59 рдХреЗ рд▓рд┐рдП рд╣реИрд╢ рдХреЛрдб рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдЬреЛ 9 рд╣реИред
  • рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдЦрдВрдб 9 рдореЗрдВ рдЦреЛрдЬрддреА рд╣реИ, рдкрд╛рдпрд╛ рдЧрдпрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ 99 рд╣реИред 99!=59 рдХреЗ рдмрд╛рдж рд╕реЗ, рддрддреНрд╡ 99 рдПрдХ рд╡реИрдз рддрддреНрд╡ рдирд╣реАрдВ рд╣реИред
  • рдЙрд╕реА рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рджреВрд╕рд░рд╛ рддрддреНрд╡ (9), рддреАрд╕рд░рд╛ (79), ..., рдЕрдВрддрд┐рдо (29) рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рд╛.
  • рдЦреЛрдЬ рдореЗрдВ 7 рдСрдкрд░реЗрд╢рди рдЦрд░реНрдЪ рд╣реБрдП.

рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЬрд┐рд╕ рдореВрд▓реНрдп рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд▓рд╛рдЧрдд рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ!

рдпрджрд┐ рдореИрдВ рдЕрдм рдХреБрдВрдЬреА рдХреЗ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдореЙрдбреНрдпреВрд▓реЛ 1 рдХреЛ рдмрджрд▓рддрд╛ рд╣реВрдВ (рдЕрд░реНрдерд╛рдд, рдЕрдВрддрд┐рдо 000 рдЕрдВрдХ рд▓реЗрддрд╛ рд╣реВрдВ), рддреЛ рджреВрд╕рд░реЗ рд▓реБрдХрдЕрдк рдореЗрдВ рдХреЗрд╡рд▓ 000 рдСрдкрд░реЗрд╢рди рдХреА рд▓рд╛рдЧрдд рдЖрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЦрдВрдб 6 рдореЗрдВ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИрдВред рдЕрд╕рд▓реА рдЪреБрдиреМрддреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдвреВрдВрдврдирд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддрддреНрд╡реЛрдВ рд╡рд╛рд▓реА рдмрдХреЗрдЯ рдмрдирд╛рдПрдЧрд╛.

рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдвреВрдВрдврдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдвреВрдВрдврдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреБрдВрдЬреА рд╣реИ:

  • рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЕрдВрддрд┐рдо рдирд╛рдо)
  • 2 рдкрдВрдХреНрддрд┐рдпрд╛рдБ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЕрдВрддрд┐рдо рдирд╛рдо рдФрд░ рдкрд╣рд▓рд╛ рдирд╛рдо)
  • 2 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рджрд┐рдирд╛рдВрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП - рдЕрдВрддрд┐рдо рдирд╛рдо, рдкреНрд░рдердо рдирд╛рдо рдФрд░ рдЬрдиреНрдо рддрд┐рдерд┐)
  • ...

рдЕрдЪреНрдЫреЗ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рд▓реБрдХрдЕрдк рдХреА рд▓рд╛рдЧрдд O(1) рд╣реИ.

рдРрд░реЗ рдмрдирд╛рдо рд╣реИрд╢ рдЯреЗрдмрд▓

рдХрд┐рд╕реА рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ?

рд╣рдореНрдо, рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓ рд╣реИ.

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

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд░реНрдЯрд┐рдХрд▓ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╛рд╡рд╛рд╣реИрд╢ рдореИрдк, рдЬреЛ рд╣реИрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдХреБрд╢рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ; рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ