рдЬреЗ рдЫрдБрдЯрдиреА


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



рд╡рд┐рдзрд┐ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреЗ рдмрд╛рдж рд╕реЗ (рдФрд░ рдЗрд╕ рд╡рд░реНрд╖ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЕрдкрдиреА рдЕрд░реНрдз-рд╢рддрд╛рдмреНрджреА рд╡рд░реНрд╖рдЧрд╛рдВрда рдордирд╛ рд░рд╣рд╛ рд╣реИ), рд╡рд╣рд╛рдБ рдХрдИ рдХреЛ рдЫрдБрдЯрд╛рдИ рдвреЗрд░ рд▓рдЧрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЯреЗрд░рд╛рдирд░реА рдкрд┐рд░рд╛рдорд┐рдбрд▓ рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рд╕реНрдореВрде рд╕реЙрд░реНрдЯрд┐рдВрдЧ, рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЯреНрд░реА рд╕реЙрд░реНрдЯрд┐рдВрдЧ - рдпрд╣ рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреА рдПрдХ рдЕрдкреВрд░реНрдг рд╕реВрдЪреА рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╡реЗ рдореВрд▓ рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдХреБрдЫ 12% рдФрд░ рдХреБрдЫ 25% рд╕реЗ рдЖрдЧреЗ рд╣реИрдВ, рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рдЕрднреА рднреА O ( n рд▓реЙрдЧ рдПрди ) рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдмрд╣реБрдд рдкрд░рд┐рд╖реНрдХреГрдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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







HeapSort



рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╡рд┐рд╖рдп рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкрд┐рд░рд╛рдорд┐рдб рдХреА рдЫрдВрдЯрд╛рдИ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИред




рдпрджрд┐ рдЖрдк рдмрд╛рдЗрдирд░реА рд╣реАрдк рдпрд╛ рд╕рд┐рд░реНрдл рдкрд┐рд░рд╛рдорд┐рдб рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдЯреНрд░реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдкрд░ рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



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



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



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



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




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



JSort



рдПрдХ рдХрдирд╛рдбрд╛рдИ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдЗрд╕ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рдкрд╣реБрдВрдЪреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдорд╣рдВрдЧрд╛ рд╣реИред рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрди рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдлрд╛рд╡рдбрд╝рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?



рдпрджрд┐ рд╕рд░рдгреА рдХреЗрд╡рд▓ рдвреЗрд░ (рдЕрд╡рд░реЛрд╣реА рдФрд░ рдЖрд░реЛрд╣реА) рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕реЗ рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЖрджреЗрд╢ рджреЗрдЧрд╛ред




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



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



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



рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛



рдЖрдЗрдП рд╕рдмрд╕реЗ рдЕрдиреБрдХреВрд▓ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдПрдХ рдмрд╛рд░ рдХрд╛ рдкрд┐рд░рд╛рдорд┐рдб рдирд┐рд░реНрдорд╛рдг O ( n ) рд╣реИред рд╣рдо рдвреЗрд░ рдкрд░ рджреЛ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдУ ( 2 рдПрди ) рдорд┐рд▓рддрд╛ рд╣реИред рдЖрд╡реЗрд╖рдг рджреНрд╡рд╛рд░рд╛ рд▓рдЧрднрдЧ рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕рд░рдгреА рдЫрдБрдЯрд╛рдИ рдПрдХ рд░рд┐рдХреЙрд░реНрдб O ( n ) рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рдордЧреНрд░ рдЬрдЯрд┐рд▓рддрд╛ O ( 3n ) рд╣реИ, рдЬреЛ O ( n ) рдХреЗ рд╕рдорд╛рди рд╣реИред



рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЕрдзрд┐рдХ рд╡рд┐рдирдореНрд░ рджрд┐рдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 рд╕реЗ 30 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реЗ рдРрд╕реЗ рдЕрдирд╕реЛрд▓реНрдб рд╕рд░рдгреА рдХреЛ рд▓реЗрдВ:









рдЖрдЗрдП рдПрдХ рдирд┐рдпрдорд┐рдд рдЧреИрд░-рдмрдврд╝рддреЗ рдвреЗрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:









рдорд╛рд╕рд┐рдл рдХреЗ рдкрд╣рд▓реЗ рддреАрд╕рд░реЗ рдиреЗ рдХрд╛рдлреА рдорд╣рд╛рди рд░реВрдк рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИ, рдмреАрдЪ рдореЗрдВ - рдЬреЛ рдЬрдВрдЧрд▓ рдореЗрдВ рдЬрд▓рд╛ рд╣реБрдЖ рд▓рдХрдбрд╝реА рд╣реИ, рдорд╛рд╕рд┐рдл рдХрд╛ рдЕрдВрдд рднреА рдЕрднреА рддрдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИред



рдЕрдм рд╣рдо рдПрдХ "рджрд░реНрдкрдг" рдЧреИрд░-рдШрдЯрддреЗ рд╣реБрдП рдвреЗрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ:









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



20 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдХреБрдВрдЬреА рдХреЛ рдиреЛрдЯ рдХрд░реЗрдВ ред рдпрд╣ рддрддреНрд╡ рд╕рд░рдгреА рдХреЗ рдкрд╣рд▓реЗ рддреАрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ рдХреНрдпреЛрдВ рдЕрдЯрдХ рдЧрдпрд╛ рд╣реИ? рдпрд╣ рдХреЛрдИ рд╕реМрднрд╛рдЧреНрдп рдирд╣реАрдВ рдерд╛ - "рдорд┐рд░рд░" рдХреЛ рдЧреИрд░-рдШрдЯрддреЗ рд╣реБрдП рдвреЗрд░ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╢рд╛рдЦрд╛ рдХреЗ рд╕рднреА рдорд╛рддрд╛-рдкрд┐рддрд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рдЧрдП (рдЕрдм рдЬрдбрд╝ рдореЗрдВ рдпрд╣ 17 рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдВрдЬреА рдкреЗрдбрд╝ рдХреЗ рдмрд╛рдПрдВ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдбреВрдм рдЬрд╛рдПрдЧреА рдФрд░ 30 рдХреЛ рд░рд╛рд╕реНрддрд╛ рджреЗрдЧреА)ред рдЗрд╕рд▓рд┐рдП, рдкрд┐рд░рд╛рдорд┐рдб рдореЗрдВ рд╡рд╣ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкрд╛рдпрджрд╛рди рдКрдкрд░ рдЙрдардиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реНрдордд рдореЗрдВ рдирд╣реАрдВ рд╣реИред









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



рд╡реИрд╕реЗ



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



рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд▓рдХреНрд╖рдг

рдирд╛рдо Jsort (J- рд╕реЙрд░реНрдЯ)
рд▓реЗрдЦрдХ рдЬреЗрд╕рди рдореЙрд░рд┐рд╕рди
рд╡рд░реНрдЧ рд╕рдВрдХрд░ рдЫрдБрдЯрд╛рдИ (рдвреЗрд░ + рдЖрд╡реЗрд╖рдг)
рд╕реНрдерд┐рд░рддрд╛ рдЕрд╕реНрдерд┐рд░
рддреБрд▓рдирд╛ рд╡рд╣рд╛рдБ рд╣реИ
рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдУ (рдПрди)
рдордзреНрдпрдо ?
рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдУ (рдПрди 2 )
рд╕реНрдореГрддрд┐ рдХрдард┐рдирд╛рдИ рдХреЗрд╡рд▓ рдУ (рдПрди)
рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдУ (1)




рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА

рдЬрд╛рд╡рд╛ рдореЗрдВ рдвреЗрд░ рдЫрд╛рдБрдЯ
/** *      *   - JWJ Williams  RW Floyd * * SortAlgorithm.java, Thu Oct 27 10:32:35 1994 * * @author Jason Harrison@cs.ubc.ca * @version 1.0, 23 Jun 1995 */ class HeapSortAlgorithm extends SortAlgorithm { //  void sort(int a[]) throws Exception { int N = a.length; //     //    . for (int k = N / 2; k > 0; k--) downheap(a, k, N); //   //    do { //    ... int T = a[0]; a[0] = a[N - 1]; a[N - 1] = T; //...     //    N = N - 1; downheap(a, 1, N); } while (N > 1); //   } //         void downheap(int a[], int k, int N) throws Exception { //   //  int T = a[k - 1]; //     while (k <= N / 2) { int j = k + k;//  //   , //     //     if ((j < N) && (a[j - 1] < a[j])) j++; //   ( )  ... if (T >= a[j - 1]) { //...         break; } else { //    ... //...       a[k - 1] = a[j - 1]; k = j; } } //         //(    ,     ) a[k - 1] = T; } }
      
      







рд╣реАрдк рд╕реЙрд░реНрдЯ рдПрдиреАрдореЗрд╢рди рдХрд╛ YouTube рд╕рдВрд╕реНрдХрд░рдг




рдЬрд╛рд╡рд╛ рдореЗрдВ Jort
 /** *    J- (JSort). *   -   (Jason Morrison) * <http://www.scs.carleton.ca/~morrison> * * JSortAlgorithm.java * *   -   * @author Patrick Morin */ class JSortAlgorithm extends SortAlgorithm { //     //       void reheap (int a[], int length, int i) throws Exception { //      boolean done = false; //   //      int T = a[i]; int parent = i; int child = 2 * (i + 1) - 1; // ,     //     (  -   ) //        //    -   . while ((child < length) && (!done)) { //      if (child < length - 1) { //        if (a[child] >= a[child + 1]) { child += 1; } } //  ? if (T < a[child]) { //        done = true; //       . //     //          } else { a[parent] = a[child]; parent = child; child = 2 * (parent + 1) - 1; } } //,     //     //(      ) a[parent] = T; } //     //       void invreheap (int a[], int length, int i) throws Exception { //      boolean done = false; //   //      int T = a[length - 1 - i]; int parent = i; int child = 2 * (i + 1) - 1; // ,     //     (  -  ) //        //    -   . while ((child < length) && (!done)) { //      if (child < length - 1) { //        if (a[length - 1 - child] <= a[length - 1 - (child + 1)]) { child += 1; } } //  ? if (T > a[length - 1 - child]) { //        done = true; } else { //       . //     //          a[length - 1 - parent] = a[length - 1 - child]; parent = child; child = 2 * (parent + 1) - 1; } } //,     //     //(      ) a[length - 1 - parent] = T; } //   void sort(int a[]) throws Exception { //   //     //    for (int i = a.length-1; i >= 0; i--) reheap (a, a.length, i); //   //     //    for (int i = a.length - 1; i >= 0; i--) invreheap (a, a.length, i); //   //  for (int j = 1; j < a.length; j++) { int T = a[j]; int i = j - 1; while (i >= 0 && a[i] > T) { a[i + 1] = a[i]; i -= 1; } a[i + 1] = T; } } }
      
      







Jsort рдПрдиреАрдореЗрд╢рди рдХрд╛ YouTube рд╕рдВрд╕реНрдХрд░рдг




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



рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ Jsort

рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рдСрдл рдореИрдирд┐рдЯреЛрдмрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬреЗрд╕рди рдореЙрд░рд┐рд╕рди рдХрд╛ рдкреЗрдЬ

рдЬреЗрд╕рди рдореЙрд░рд┐рд╕рди рд▓рд┐рдВрдХреНрдбрдЗрди рдкреЗрдЬ



All Articles