vladkomarr

quicksort

Sep 15th, 2014
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. // сортировка методом какого-то рандомного хуя
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. void print_arr(int *arr, int n) {
  6. for(int i = 0; i < n; i++)
  7. std::cout << arr[i] << " ";
  8. std::cout << std::endl;
  9. std::cout << std::endl;
  10. }
  11.  
  12. void qs(int *s_arr, int first, int last) {
  13. int i = first;
  14. int j = last;
  15. int m = s_arr[(first+last)/2];
  16.  
  17. do {
  18. while(s_arr[i] < m) i++;
  19. while(s_arr[j] > m) j--;
  20.  
  21. if(i <= j) {
  22. if(s_arr[i] > s_arr[j]) {
  23. int temp = s_arr[j];
  24. s_arr[j] = s_arr[i];
  25. s_arr[i] = temp;
  26.  
  27. }
  28. print_arr(s_arr, last-1);
  29. i++;
  30. j--;
  31. }
  32. } while (i <= j);
  33.  
  34. if(i < last)
  35. qs(s_arr, i, last);
  36. if(j > first)
  37. qs(s_arr, first, j);
  38. }
  39.  
  40. int main() {
  41. int n = 16;
  42. int arr[] = { 4, 9, 7, 6 , 2 ,3 , 8, 14, 15, 9, 3, 0, 3, 3, 9, 8 };
  43.  
  44. print_arr(arr, n);
  45. qs(arr, 0, n-1);
  46. print_arr(arr, n);
  47.  
  48.  
  49.  
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment