рд╡рд┐рддрд░рдг рджреНрд╡рд╛рд░рд╛ рдПрдХ рдФрд░ рдкреНрд░рдХрд╛рд░


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

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

рдпрд╣ FlashSort рд╣реИ , рдЬреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмрдбрд╝реА рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

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

рджрд┐рд▓


рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдордЭрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред

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

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

Matan


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

рдпрджрд┐ рд╣рдо рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдореАрдЯрд░ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░рдгреА рдореЗрдВ рдиреНрдпреВрдирддрдо рдП рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдП рдЕрдзрд┐рдХрддрдо рддрддреНрд╡ рднреА рдЬреНрдЮрд╛рдд рд╣реИрдВ, рддреЛ рддрддреНрд╡ рдП i рдХреЗ рд╡рд░реНрдЧ рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрди рд╕реВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ:


рдЫрд╡рд┐

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

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХрд╛ рдЕрд░реНрде рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрдХреНрд╖рд╛рдПрдВ 1 рд╕реЗ m рддрдХ рдмрджрд▓ рджреА рдЬрд╛рдПрдВрдЧреАред рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд░рдгреА Q [ 1..m ] рдореЗрдВ, рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ рдХреЗ рдореБрдЦреНрдп рд╕рд░рдгреА рд╕реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ Q [ K ] рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рджрд░реНрдЬ рдХреА рдЧрдИ рд╣реИред

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

рджреГрд╢реНрдп



рдЕрд╡рдзрд┐ 2 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдХреНрдпреЛрдВ рдЫрдВрдЯрд╛рдИ рдХреЛ "рдЯрд┐рдордЯрд┐рдорд╛" рдХрд░рд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



YouTube рд╕рдВрд╕реНрдХрд░рдг


рд╕рдордп рджрдХреНрд╖рддрд╛


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

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

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

рдореЗрдореЛрд░реА рдХреНрд╖рдорддрд╛


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

рдПрдо m 0.42 рдПрди ,

рдЖрдиреБрднрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдиреНрдпреВрдмрд░реНрдЯ рджреНрд╡рд╛рд░рд╛ рд╡реНрдпреБрддреНрдкрдиреНрдиред

рдпрджрд┐ рдореБрдЦреНрдп рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рдХреА рд╕реАрдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЫреЛрдЯреА рд╣реИ, рддреЛ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рдкреВрд░реНрдгрд╛рдВрдХ рджреВрд░реА рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореАрдЯрд░ рд╕рдВрднрд╡ рд╣реИ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд╛рдВрдЫрдиреАрдп)ред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, "1 рдорд╛рди = 1 рд╡рд░реНрдЧ" рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЕрдзреАрди, рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЫрдВрдЯрдиреА рдХреА рдЧрддрд┐ рдереЛрдбрд╝рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рдУ (рдПрди) рддрдХ рдкрд╣реБрдВрдЪрддреА рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдЬрд╛рд╡рд╛ рдореЗрдВ FlashSortред
import java.util.Arrays; public class FlashSortAlgorithm extends SortAlgorithm { void sort(int[] a) throws Exception { FlashSort(a); // FlashSort InsertionSort(a); //   } //FlashSort,    //   private void FlashSort(int [] a) throws Exception { int n = a.length; //  int m = n * 0.42; //  int [] l = new int[m]; //  int i = 0, j = 0, k = 0; //   int anmin = a[0]; //  int nmax = 0; //   //     for (i = 1; i < n; i++) { if (a[i] < anmin) anmin = a[i]; if (a[i] > a[nmax]) nmax = i; } // = ?   //   . // ,  ! if (anmin == a[nmax]) return; //   double c1 = ((double) m - 1) / (a[nmax] - anmin); //   //    - //     for (i = 0; i < n; i++) { k = (int) (c1 * (a[i] - anmin)); l[k]++; } //     //(  2-)   . //      //        //     for (k = 1; k < m; k++){ l[k] += l[k - 1]; } //        //         //       int hold = a[nmax]; a[nmax] = a[0]; a[0] = hold; //  // ,  //     int nmove = 0; // ,      //      ""  int flash; //   //  ,    //  j = 0; //    //      1..m-1 k = m - 1; while (nmove < n - 1) { while (j > (l[k] - 1)) { j++; k = (int) (c1 * (a[j] - anmin)); } flash = a[j]; while (!(j == l[k])) { k = (int) (c1 * (flash - anmin)); hold = a[l[k] - 1]; a[l[k] - 1] = flash; flash = hold; l[k]--; nmove++; } } } //    //     FlashSort private void InsertionSort(int [] a) throws Exception { int i, j, hold; for (i=a.length-3; i>=0; i--) { if (a[i+1] < a[i]) { hold = a[i]; j=i; while (a[j+1] < hold) { a[j] = a[j+1]; j++; } a[j] = hold; } } } } 



рдХреЛрдб рдпрд╣рд╛рдБ рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБред
рд╡рд┐рднрд┐рдиреНрди PLs (Ada, C, Basic, Fort, Fortran, Java, Pascal) рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░реЛрдлреЗрд╕рд░ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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


рдирд╛рдоFlashSort (рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рдЫрдБрдЯрд╛рдИ; рдЪрдордХрддреА рдЫрдБрдЯрд╛рдИ; рдЪрдордХрддреА рдЫрдБрдЯрд╛рдИ)
рд▓реЗрдЦрдХрдХрд╛рд░реНрд▓-рдбрд╛рдЗрдЯрд░рд┐рдХ рдиреНрдпреВрдмрд░реНрдЯ
рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рд╡рд░реНрд╖1998
рд╡рд░реНрдЧрд╡рд┐рддрд░рдг рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ
рд╕реНрдерд┐рд░рддрд╛рдЕрд╕реНрдерд┐рд░
рддреБрд▓рдирд╛рдХреЛрдИ рддреБрд▓рдирд╛ рдирд╣реАрдВ
рд╕рдордп рдХреА рдЬрдЯрд┐рд▓рддрд╛рд╕рдмрд╕реЗ рдЦрд░рд╛рдмрдУ (рдПрди 2 )
рдордзреНрдпрдоO (n + m)
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛рдУ (рдПрди)
рд╕реНрдореГрддрд┐ рдХрдард┐рдирд╛рдИрдХреЗрд╡рд▓O (n + m)
рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛рдУ (рдПрдо)


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


рдЕрдВрдЧреНрд░реЗрдЬреА рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдлреНрд▓реИрд╢рд╢реЙрдЯ
рдХрд╛рд░реНрд▓-рдбрд┐рдЯреНрд░реАрдЪ рдиреНрдпреБрдмрд░реНрдЯ, рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡реЗрдмрд╕рд╛рдЗрдЯред
FlashSort рдкрд░ Dr. рдбреЛрдм рдХреА рдкрддреНрд░рд┐рдХрд╛
рдЬрд╛рд╡рд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди

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


All Articles