Содержание
- 2. 3.1. Сортировка массивов Внутренняя сортировка Внешняя сортировка
- 3. Три основных метода сортировки: Обмен 2. Выбор 3. Вставка
- 4. 3.2. Простые методы сортировки 3.2.1. Метод пузырька и шейкерная сортировка
- 5. void s_puz(int a[], int n)
- 6. void s_puz(int a[], int n) { int i, j, t;
- 7. void s_puz(int a[], int n) { int i, j, t; for(i=1; i for( j=n-1; j >=
- 8. void s_puz(int a[], int n) { int i, j, t; for(i=1; i for( j=n-1; j >=
- 9. void s_puz(int a[], int n) { int i, j, t; for(i=1; i for( j=n-1; j >=
- 10. void s_shaker(int a[], int n) { int i,j,t, l=0, r=n, k; do { for( j=n-1; j
- 11. for(i=1; i if(a[i-1] > a[i]) { t = a[i-1]; a[i-1] = a[i]; a[i] = t; k=i;
- 12. 3.2.2. Сортировка выбором
- 13. void s_vb(int a[], int n) { int imin, i, j, t;
- 14. void s_vb(int a[], int n) { int imin, i, j, t; for (i=0; i
- 15. void s_vb(int a[], int n) { int imin, i, j, t; for(i=0; i { imin=i; for(j=i+1;
- 16. void s_vb(int a[], int n) { int imin, i, j, t; for(i=0; i { imin=i; for(j=i+1;
- 17. 3.2.3. Сортировка вставками
- 18. void s_vst(int a[], int n) { int i, j, t; for(i=1; i { t = a[i];
- 19. 3.3. Улучшенные методы сортировки
- 20. 3.3.1. Метод Шелла
- 21. void s_shell(int a[], int n) { int i, j, t; for(int d=3; d>0; d--) for(i=d; i
- 22. 3.3.2. Сортировка слиянием a[1..n] a[l, m] a[m+1,r]
- 23. void slip(int l, int m, int r) { int i=l, j=m+1, k=0; while ((i if (a[i]
- 24. void s_sl(int l, int r) { if (l { int m=(l+r)/2; s_sl(l,m); s_sl(m+1,r); slip(l,m,r); } }
- 25. s_sl(0,n-1);
- 26. 3.3.3. Метод QuickSort (быстрая сортировка или сортировка Хоара)
- 27. do { while (a[i] while (a[j] > x && j > left) j--; if (i t
- 28. if(left if(i }
- 29. void s_qs(char a[], int n) { struct { int l; int r; } stack[20];
- 30. int i, j, left, right, x, t, s=0; stack[s].l = 0; stack[s].r = n-1; while (s
- 31. while (left { i=left; j=right; x=a[(left+right)/2]; while (i while (a[i] while (a[j] > x) j--; if
- 32. if ((j-left) { if (i stack[s].l=i; stack[s].r=right; } right=j; } else { if (left stack[s].l=left; stack[s].r=j;
- 33. 3.5. Поиск в массиве структур
- 34. Линейный поиск int p_lin1(int a[],int n, int x)
- 35. int p_lin1(int a[],int n, int x) { for(int i=0; i
- 36. int p_lin1(int a[],int n, int x) { for(int i=0; i if (a[i]==x) return i;
- 37. int p_lin1(int a[],int n, int x) { for(int i=0; i if (a[i]==x) return i; return -1;
- 38. int p_lin1(int a[],int n, int x) { for(int i=0; i if (a[i]==x) return i; return -1;
- 39. int p_lin2(int a[],int n, int x)
- 40. int p_lin2(int a[],int n, int x) { a[n]=x; int i=0;
- 41. int p_lin2(int a[],int n, int x) { a[n]=x; int i=0; while (a[i]!=x) i++;
- 42. int p_lin2(int a[],int n, int x) { a[n]=x; int i=0; while (a[i]!=x) i++; if (i==n) return
- 43. int p_lin2(int a[],int n, int x) { a[n]=x; int i=0; while (a[i]!=x) i++; if (i==n) return
- 44. Поиск делением пополам int p_dv(int a[], int n, int x)
- 45. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m;
- 46. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i
- 47. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i m=(i+j)/2;
- 48. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i m=(i+j)/2; if (x
- 49. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i m=(i+j)/2; if (x
- 50. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i m=(i+j)/2; if (x
- 51. Интерполяционный поиск
- 52. int p_dv(int a[], int n, int x)
- 53. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m;
- 54. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i
- 55. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i if (a[i]==a[j]) if
- 56. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i if (a[i]==a[j]) if
- 57. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i if (a[i]==a[j]) if
- 58. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i if (a[i]==a[j]) if
- 59. int p_dv(int a[], int n, int x) { int i=0, j=n-1, m; while(i if (a[i]==a[j]) if
- 61. Скачать презентацию