Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void selectionSort(int *mas, int size);
  5. void quickSort(int *mas1, int size);
  6. int main()
  7. {
  8. system("chcp 1251");
  9. int mas[20] = {4, 9, 7, 6, 2, 3, 8, 1, 5, 10, 16, 13, 11, 12, 18, 15, 17, 19, 20, 14};
  10. printf("Ìàññèâ äî ñîðòèðîâêè:\n");
  11. for(int i = 0; i < 20; i++)
  12. printf("%d\n", mas[i]);
  13. selectionSort(mas, 20);
  14. int mas1[20] = {40, 90, 70, 60, 20, 30, 80, 10, 50, 100, 160, 130, 110, 120, 180, 150, 170, 190, 200, 140};
  15. printf("\nÌàññèâ äî ñîðòèðîâêè:\n");
  16. for(int i = 0; i < 20; i++)
  17. printf("%d\n", mas1[i]);
  18. float start = clock();
  19. quickSort(mas1, 19);
  20. float end = clock();
  21. printf("Âðåìÿ ðàáîòû àëãîðèòìà: %f\n", (end-start)/1000);
  22. printf("Ðåçóëüòàò ðàáîòû áûñòðîé ñîðòèðîâêè:\n");
  23. for(int i = 0; i < 20; i++)
  24. printf("%d\n", mas1[i]);
  25.  
  26.  
  27. return 1;
  28. }
  29. int l = 0;
  30. void quickSort(int *mas1, int size)
  31. {
  32. int i = 0;
  33. int j = size;
  34. int p = mas1[size/2];
  35. int temp;
  36. do
  37. {
  38. while(mas1[i] < p)
  39. i++;
  40. while(mas1[j] > p)
  41. j--;
  42. if(i <= j)
  43. {
  44. temp = mas1[i];
  45. mas1[i] = mas1[j];
  46. mas1[j] = temp;
  47. i++;
  48. j--;
  49. }
  50. } while(i <= j);
  51. l++;
  52. printf("Òåêóùàÿ èòåðàöèÿ: %d\n", l);
  53. for(int k = 0; k < size+1; k++)
  54. printf("%d\n", mas1[k]);
  55. if(j > 0)
  56. quickSort(mas1, j);
  57. if(size > i)
  58. quickSort(mas1+i, size-i);
  59. }
  60.  
  61. void selectionSort(int *mas, int size)
  62. {
  63. int min = 0;
  64. int temp = 0;
  65. for(int i = 0; i < size; i++)
  66. {
  67. min = i;
  68. for(int j = i+1; j < size; j++)
  69. {
  70. if(mas[j]<mas[min])
  71. min = j;
  72. }
  73. temp = mas[i];
  74. mas[i] = mas[min];
  75. mas[min] = temp;
  76. printf("Òåêóùàÿ èòåðàöèÿ: %d\n", i+1);
  77. for(int k = 0; k < size; k++)
  78. printf("%d\n", mas[k]);
  79. }
  80. float time = clock();
  81. printf("Âðåìÿ ðàáîòû àëãîðèòìà: %f\n", time/1000);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement