Advertisement
J00ker

E

Nov 11th, 2014
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. int a[100001], n;
  8.  
  9. //Quick Sort
  10. void Generare()
  11. {
  12. int i;
  13. n = 100;
  14. srand(time(0));
  15. for(i = 1; i <= n; i++)
  16. a[i] = rand() % 100;
  17. }
  18.  
  19. inline void Sch(int &x, int &y)
  20. {
  21. int aux;
  22. aux = x;
  23. x = y;
  24. y = aux;
  25. }
  26.  
  27. //Returneaza pozitia unde s-a asezat pivotul
  28. int Pivot(int st, int dr)
  29. {
  30. int i, j, piv;
  31. piv = a[st];
  32. i = st+1;
  33. j = dr;
  34. while(i <= j)
  35. {
  36. if(a[i] <= piv) i++;
  37. if(a[j] >= piv) j--;
  38. if(i < j && a[i] > piv && piv > a[j])
  39. {
  40. Sch(a[i], a[j]);
  41. i++; j--;
  42. }
  43. }
  44. Sch(a[st], a[i-1]);
  45. return i-1;
  46. }
  47.  
  48. void QuickSort(int st, int dr)
  49. {
  50. int m = Pivot(st, dr);
  51. if(st < m-1) QuickSort(st, m-1);
  52. if(m+1 < dr) QuickSort(m+1, dr);
  53. }
  54.  
  55. void Afisare()
  56. {
  57. int i;
  58. for(i = 1; i <= n; i++)
  59. cout << a[i] << " ";
  60. }
  61.  
  62. int main()
  63. {
  64. Generare();
  65. QuickSort(1, n);
  66. Afisare();
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement