рдмрдбрд╝рд╛ рдУ

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

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

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

рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ


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

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

рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдЬреИрд╕реЗ рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ)ред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдгред

рдЖрдЗрдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ: O (1)


5 рдирдВрдмрд░ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реЗрдВ:

const nums = [1,2,3,4,5]; 

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

 const nums = [1,2,3,4,5]; const firstNumber = nums[0]; 

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

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ: рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рдиреЗ рдкрд░ рдХрд┐рддрдиреЗ рдСрдкрд░реЗрд╢рди рдмрдврд╝реЗрдВрдЧреЗред

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, 5 рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░рдгреА рдореЗрдВ 5 рддрддреНрд╡ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдСрдкрд░реЗрд╢рди (рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛ рдПрдХ рддрддреНрд╡ рд▓реЗрдирд╛) рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рд╕рд░рдгреА рдореЗрдВ 100 рддрддреНрд╡ рд╣реИрдВ, рддреЛ рдХрд┐рддрдиреЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА? рдпрд╛ 1000? рдпрд╛ 100,000? рд╕рднреА рд╕рдорд╛рди, рдХреЗрд╡рд▓ рдПрдХ рдСрдкрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╡рд╣ рд╣реИ: "рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдкрд░реЗрд╢рди" - рдУ (1)ред

O (1) рдХреЛ "рдСрд░реНрдбрд░ 1 рдЬрдЯрд┐рд▓рддрд╛" (рдСрд░реНрдбрд░ 1) рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ "рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдирд┐рд░рдВрддрд░ / рдирд┐рд░рдВрддрд░ рд╕рдордп рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ" (рдирд┐рд░рдВрддрд░)ред

рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рдерд╛ рдХрд┐ O (1) рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рд╣реИрдВред

рдкрд░рд┐рд╡рд░реНрддрди рдФрд░ "рдЖрджреЗрд╢ n рдХрд╛ рд╕рдордп": O (n)


рдЕрдм рдЖрдЗрдП рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рдЦреЛрдЬреЗрдВ:

 const nums = [1,2,3,4,5]; let sum = 0; for(let num of nums){ sum += num; } 

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

рдмрд┐рдЧ рдУ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: O (n), рдпрд╛ "рдСрд░реНрдбрд░ n (рдСрд░реНрдбрд░ n) рдХреА рдЬрдЯрд┐рд▓рддрд╛"ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ "рд░реИрдЦрд┐рдХ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо "рд░реИрдЦрд┐рдХ рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛" рд╣реИред

рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдХреНрдпрд╛ рд╣рдо рдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдо рддреМрд░ рдкрд░ рдирд╣реАрдВред рдФрд░ рдЕрдЧрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░рдгреА рдХреЛ 1 рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИ, рддреЛ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рдЕрдВрддрд░рд╛рд▓ рдирд╣реАрдВ рд╣реИ? рддрдм рд╣рдо рд╕реВрддреНрд░ S = n (n + 1) / 2 (рдЬрд╣рд╛рдБ n рд╕рд░рдгреА рдХрд╛ рдЕрдВрддрд┐рдо рддрддреНрд╡ рд╣реИ) рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 const sumContiguousArray = function(ary){ //get the last item const lastItem = ary[ary.length - 1]; //Gauss's trick return lastItem * (lastItem + 1) / 2; } const nums = [1,2,3,4,5]; const sumOfArray = sumContiguousArray(nums); 

рдРрд╕рд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо O (n) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕реЗ "рдирд┐рд░рдВрддрд░ / рдирд┐рд░рдВрддрд░ рд╕рдордп" рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдУ (1) рд╣реИред

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

рд▓рдЧрд╛рддрд╛рд░ рд╕рдордп рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣рдореЗрд╢рд╛ рдУ (1) рд╣реЛрддреЗ рд╣реИрдВред рд░реИрдЦрд┐рдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рднреА, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрдЪрд╛рд▓рди рдУ (рдПрди + 5) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдЧ рдУ рдореЗрдВ рдЕрдВрдХрди рдУ (рдПрди) рд╣реИред

рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ: O (n ^ 2)


рдЖрдЗрдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗрдВ рдЬреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рд╕реЙрд▓реНрдпреВрд╢рди:

 const hasDuplicates = function (num) { //loop the list, our O(n) op for (let i = 0; i < nums.length; i++) { const thisNum = nums[i]; //loop the list again, the O(n^2) op for (let j = 0; j < nums.length; j++) { //make sure we're not checking same number if (j !== i) { const otherNum = nums[j]; //if there's an equal value, return if (otherNum === thisNum) return true; } } } //if we're here, no dups return false; } const nums = [1, 2, 3, 4, 5, 5]; hasDuplicates(nums);//true 

рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░рдгреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реЗ (n)ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╣рдо рдлрд┐рд░ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддреЗ рд╣реИрдВ - рдЕрд░реНрдерд╛рддред рдУ (рдПрди ^ 2) рдпрд╛ "рдСрд░реНрдбрд░ рдПрди рд╕реНрдХреНрд╡рд╛рдпрд░ рдХреА рдЬрдЯрд┐рд▓рддрд╛ред"

рд╕рдорд╛рди рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рд╡рд╛рд▓реЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣рдореЗрд╢рд╛ рдУ (рдПрди ^ 2) рд╣реЛрддреЗ рд╣реИрдВред

"рд▓реЙрдЧ рдПрди рдХреЗ рдЖрджреЗрд╢ рдХреА рдЬрдЯрд┐рд▓рддрд╛": рдУ (рд▓реЙрдЧ рдПрди)


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

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

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

рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ

рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдПрдХ рд▓рдШреБрдЧрдгрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рд▓рдШреБрдЧрдгрдХреЛрдВ рдХрд╛ рддреНрд╡рд░рд┐рдд рдЕрд╡рд▓реЛрдХрди


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, x рдХрд┐рд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛?

x ^ 3 = 8

рд╣рдореЗрдВ 8 рдХреА рдШрдирдореВрд▓ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдпрд╣ 2 рд╣реЛрдЧрд╛ред рдЕрдм рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ

2 ^ x = 512

рд▓рдШреБрдЧрдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

log2 (512) = x

"512 рдХрд╛ рдЖрдзрд╛рд░ 2 рд▓рдШреБрдЧрдгрдХ x рд╣реИред" "рдмреЗрд╕ 2" рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЕрд░реНрдерд╛рддреН рд╣рдо рджреЛрд╣реЛрдВ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ - 512 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрд┐рддрдиреА рдмрд╛рд░ 2 рдХреЛ рдЧреБрдгрд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдореЗрд░рд╛ рдЬреЛрдбрд╝ред рдпрд╛рдиреА рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЙрддрдиреЗ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рддрдирд╛ рдХрд┐ рд╣рдо рдПрд░реЗ рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо 4 рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдХрд┐рддрдиреА рдмрд╛рд░ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? 2 рдмрд╛рд░ред рдФрд░ 8 рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА? 3 рдмрд╛рд░ред рдпрд╛рдиреА рдбрд┐рд╡реАрдЬрдиреЛрдВ / рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ = log2 (n) (рдЬрд╣рд╛рдВ n рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ)ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд▓реЙрдЧ 2 (рдПрди) рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдмрд┐рдЧ рдУ рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ рдУ (рд▓реЙрдЧ рдПрди) рд╣реИред

O рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ (n ^ 2) рд╕реЗ O (n log n)


рдЖрдЗрдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХреА рдЬрд╛рдВрдЪ рдХреЗ рдХрд╛рд░реНрдп рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред рд╣рдордиреЗ рд╕рд░рдгреА рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд┐рдпрд╛, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рдлрд┐рд░ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ O (n) O (n) рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рдд O (n * n) рдпрд╛ O (n ^ 2)ред

рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдХреЛ рдмрд╛рдЗрдирд░реА рд╕рд░реНрдЪ * рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА рд╣рдореЗрдВ рдмрд╕ O (n) рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдВрджрд░ рд╣рдо O (рд▓реЙрдЧ рдПрди) рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ O (n * log n), рдпрд╛ O (n рд▓реЙрдЧ рдПрди) рдирд┐рдХрд▓рддрд╛ рд╣реИред

 const nums = [1, 2, 3, 4, 5]; const searchFor = function (items, num) { //use binary search! //if found, return the number. Otherwise... //return null. We'll do this in a later chapter. } const hasDuplicates = function (nums) { for (let num of nums) { //let's go through the list again and have a look //at all the other numbers so we can compare if (searchFor(nums, num)) { return true; } } //only arrive here if there are no dups return false; } 


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

рдмрд┐рдЧ рдУ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ


  • рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЗ (1) рд╣реИред рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рд╕реА рд╕рд░рдгреА рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реЛ, рдпрд╛ рдмрд┐рдЧ рдУ рд╕рдВрдХреЗрддрди рдореЗрдВ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛, рдпрд╣ рдУ (1) рд╣реЛрдЧрд╛
  • рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ рдК (n) рд╣реИ
  • рдПрдХ рд╣реА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдкреНрд╕ рд╣реЗ (n ^ 2)
  • рдмрд╛рдВрдЯреЛ рдФрд░ рдЬреАрддреЛ рд╣рдореЗрд╢рд╛ рдУ (рд▓реЙрдЧ рдПрди)
  • рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЬреАрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрди рдУ рд╣реИрдВ (рдПрди рд▓реЙрдЧ рдПрди)

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


All Articles