рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдИрдЯреА рдмрд╛рдЬрд╛рд░ Google рдФрд░ рдУрд░реЗрдХрд▓ рдореЗрдВ рдкреНрд░рдореБрдЦ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдШреЛрдЯрд╛рд▓рд╛, рдЬрд┐рд╕рдХрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░рдг рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдерд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рдЧрдореЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрджрд╛рд▓рдд рдереА, рдЬреЛ рд╕реЛрдорд╡рд╛рд░ 16 рдЕрдкреНрд░реИрд▓ рд╕реЗ рд╢реБрд░реВ рд╣реБрдИред рдУрд░реЗрдХрд▓ рдХреЗ рджрд╛рд╡реЛрдВ рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ 2009 рдореЗрдВ рд╕рди рдорд╛рдЗрдХреНрд░реЛрд╕рд┐рд╕реНрдЯрдореНрд╕ рдХреЛ рдЦрд░реАрджрдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдиреА рдиреЗ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд▓рд┐рдП рдХреЙрдкреАрд░рд╛рдЗрдЯ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рджрд┐рдЧреНрдЧрдЬ рдХрдВрдкрдиреА рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЕрд╡реИрдз рд░реВрдк рд╕реЗ рдЬрд╛рд╡рд╛ рддрдХрдиреАрдХ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреА рд╣реИ, рдЗрд╕ рддрд░рд╣ рдУрд░реЗрдХрд▓ рдкреЗрдЯреЗрдВрдЯ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрддрд╛ рд╣реИред
рдкреЗрдЯреЗрдВрдЯ рдХрд╛рдиреВрди рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рдиреВрдиреА рдореБрджреНрджреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдУрд░реЗрдХрд▓ рд╡рдХреАрд▓реЛрдВ рдХреЗ рддрд░реНрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реИрдВ, рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ Google рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб, рдиреНрдпреВрдирддрдо рд╕реНрд░реЛрдд рдкрд░ рд╕реАрдзреЗ рдЬрд╛рд╡рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╕реАрдзреЗ рдЖрд╡реЗрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рджреЗрдВ, рддреЛ Oracle Google рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреА 103,400 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рдЖрд░реЛрдк рд▓рдЧрд╛рддрд╛ рд╣реИ (рдореБрдХрджрдореЗ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдЗрд╕
pdf- рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)
рдЗрд╕рд▓рд┐рдП, рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рдЕрд╕рд▓реА рдорд╛рд▓рд┐рдХ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдкреЗрдЯреЗрдВрдЯ рд░реЙрдпрд▓реНрдЯреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЪреЗрдд рдЗрдирдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдУрд░реЗрдХрд▓ рдХреЗ рд╡рдХреАрд▓реЛрдВ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрдпрд╛рди рдХреЗ рдмрд╛рдж, рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдЬреЛрд╢реБрдЖ рдмрд▓реЛрдЪ , рд╡рд░реНрддрдорд╛рди рдореЗрдВ Google рджреНрд╡рд╛рд░рд╛ рдирд┐рдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЬрд┐рд╕рдХреА рдирд┐рдЧрдо рдореЗрдВ рд╕реНрдерд┐рддрд┐ Google рдореЗрдВ рдореБрдЦреНрдп рдЬрд╛рд╡рд╛ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╛рдорд┐рдд рд╣реИ, рдЙрд╕реЗ рдЕрджрд╛рд▓рдд рдореЗрдВ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛ рдХрд┐ рдмрд▓реЛрдЪ рдиреЗ рдХрд╛рдо рдкрд░ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рд╡рд┐ рдкрд░ рдЖрда рд╕рд╛рд▓ рддрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рджрд┐рдЧреНрдЧрдЬ рдХрдВрдкрдиреА)ред
Array.java рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрд░реЛрдд
рдХреЛрдб рдореЗрдВ рд░реЗрдВрдЬрдЪреЗрдХ рд╡рд┐рдзрд┐ рд╣реИ:
792 private static void rangeCheck(int length, int fromIndex, int toIndex) { 793 if (fromIndex > toIndex) { 794 throw new IllegalArgumentException( 795 "fromIndex(" + fromIndex + ") > toIndex(" + toIndex + ")"); 796 } 797 if (fromIndex < 0) { 798 throw new ArrayIndexOutOfBoundsException(fromIndex); 799 } 800 if (toIndex > length) { 801 throw new ArrayIndexOutOfBoundsException(toIndex); 802 } 803 }
рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдмрд▓реЛрдЪ рдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рд╡рд╣ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдХреЗ рд▓реЗрдЦрдХ рдереЗ, рдЬреЛ 1997 рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╕рди рдиреЗ 2004 рдореЗрдВ рдЗрд╕реА рдХреЛрдб рдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджрд┐рдпрд╛ - рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдпрд╣ рдУрд░реЗрдХрд▓ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрди рдЧрдпрд╛ рдерд╛ред
рдХреЛрдб рдХреА рд╕рдорд╛рди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ TimSort.java рдФрд░ ComparableTimSort.java рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ 2007 рдореЗрдВ рдмрд▓реЛрдЪ рдиреЗ рднреА рдкреБрд╖реНрдЯрд┐ рдХреА рдереАред рдЬрдм рдЙрдирд╕реЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ Array.java рдХреЛрдб рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдмрд▓реЛрдЪ рдиреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рдЬрдм рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдХрд┐ рдХреЛрдб рдХрд╛ рд╕рдорд╛рди рдЕрд░реНрде рдФрд░ рд╕рдорд╛рди рдирд╛рдо рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ рдмрдирд╛рдпрд╛ ("рдПрдХ рд╣реА рдЖрджреЗрд╢ рдФрд░ рдПрдХ рд╣реА рдирд╛рдо рдПрдХ рдордЬрдмреВрдд рд╕рдВрдХреЗрддрдХ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рдерд╛"), рдпрд╣ рдЕрдм рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдЪреНрдЪрд╛рдИ рдХреЗ рдХрд░реАрдм рдХрдм рдерд╛ рдФрд░ рдХреНрдпрд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡рдХреАрд▓реЛрдВ рдиреЗ рдЬреЛрд░ рджрд┐рдпрд╛, рдЬреЛрд░ рджрд┐рдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ Google рдХреА рд╕реНрдерд┐рддрд┐ рдХреБрдЫ рдЦрд╝рд░рд╛рдм рд╣реИ
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рдХреЗ рдЫреЛрдЯреЗ рд╕реЗ рдЫреЛрдЯреЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред
рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЕрдкрдиреЗ рднрд╛рд╖рдг рдХреЗ рдЕрдВрдд рдореЗрдВ, рдмрд▓реЛрдЪ рдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдкреНрдкрдгреА рдХреА: "рдЕрдЧрд░ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдпрд╣ рдПрдХ рдЧрд▓рддреА рдереА, рдФрд░ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреЗрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ред" рдПрдВрдбреНрд░реЙрдЗрдб 4.0 рдореЗрдВ, рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд░реЗрдВрдЬрдЪреЗрдХ рд╡рд┐рдзрд┐ рдЧрд╛рдпрдм рд╣реИред
[
рд╕реНрд░реЛрдд ]