рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ: рд╕реЙрд░реНрдЯ рдбрд╛рд▓реЗрдВ

рд▓реЗрдЦрдХ рд╕реЗ
рдпрд╣ рд▓реЗрдЦ рдПрдХ рдРрд░реЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рд╕реБрдзрд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ рдХреЗрд╡рд▓ рд╕реНрд╡рд╛рдЧрдд рд╣реИ :)

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

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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ (рдЗрдВрдЯ) рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реЛрдЧреАред рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ n-1 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрд╡рдпрдВ C ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдореБрдЦреНрдп рд▓реВрдк 0 рд╡реЗрдВ рддрддреНрд╡ рд╕реЗ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 1 рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ 1 рддрддреНрд╡ рддрдХ рдХрд╛ рддрддреНрд╡ рд╣рдорд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдЕрдиреБрдХреНрд░рдо рд╣реЛрдЧрд╛ (рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рддрддреНрд╡ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрддреНрд╡ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдВрдЦреНрдпрд╛ 0 рд╕реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВрдЧреЗред рдмрд╛рдХреА рд╕рдмред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдб:

for(int i=1;i<n;i++) for(int j=i;j>0 && x[j-1]>x[j];j--) //  j>0   j-1 > j, x- int swap(x[j-1],x[j]); //    j  j-1 

рдЫрдВрдЯрдиреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдХреЗрд╡рд▓ 3 рд▓рд╛рдЗрдиреЗрдВред рд╕реНрд╡реИрдк рдлрд╝рдВрдХреНрд╢рди рддрддреНрд╡ x [j-1] рдФрд░ x [j] рдХреЛ рд╕реНрд╡реИрдк рдХрд░рддрд╛ рд╣реИред рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд▓реВрдк рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред рдореИрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЫрдВрдЯрд╛рдИ рд▓рд┐рдЦреЗрдВ рддрд╛рдХрд┐ рдмреБрд▓рдмреБрд▓реЗ рджреНрд╡рд╛рд░рд╛ рдЫрдВрдЯрд╛рдИ рди рд╣реЛ рд╕рдХреЗ :)

рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рд╕рдореНрдорд┐рд▓рди рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛ n 2 рд╣реИ , рддреБрд▓рдирд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реВрддреНрд░ n * (n-1) / 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдкреНрд░рдорд╛рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛:
 void Sort(int* arr,int n){ int counter=0; for(int i=1;i<n;i++){ for(int j=i; j>0 && arr[j-1]>arr[j];j--){ counter++; int tmp=arr[j-1]; arr[j-1]=arr[j]; arr[j]=tmp; } } cout<<counter<<endl; } 

100 рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдВрдЦреНрдпрд╛:
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рдЗрд╕рд▓рд┐рдП, n = 100 рдХреЗ рд╕рд╛рде, рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди рдХреА рд╕рдВрдЦреНрдпрд╛ 4950 рд╣реИ, рдФрд░ 10000 рдирд╣реАрдВ рдпрджрд┐ рд╣рдордиреЗ рд╕реВрддреНрд░ n 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреАред рдПрдХ рдЫрдБрдЯрд╛рдИ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЪреБрдирддреЗ рд╕рдордп рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВред

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

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


All Articles