Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <ctime>
- #include <cstdlib>
- using namespace std;
- int a[100001], n;
- //Quick Sort
- void Generare()
- {
- int i;
- n = 100;
- srand(time(0));
- for(i = 1; i <= n; i++)
- a[i] = rand() % 100;
- }
- inline void Sch(int &x, int &y)
- {
- int aux;
- aux = x;
- x = y;
- y = aux;
- }
- //Returneaza pozitia unde s-a asezat pivotul
- int Pivot(int st, int dr)
- {
- int i, j, piv;
- piv = a[st];
- i = st+1;
- j = dr;
- while(i <= j)
- {
- if(a[i] <= piv) i++;
- if(a[j] >= piv) j--;
- if(i < j && a[i] > piv && piv > a[j])
- {
- Sch(a[i], a[j]);
- i++; j--;
- }
- }
- Sch(a[st], a[i-1]);
- return i-1;
- }
- void QuickSort(int st, int dr)
- {
- int m = Pivot(st, dr);
- if(st < m-1) QuickSort(st, m-1);
- if(m+1 < dr) QuickSort(m+1, dr);
- }
- void Afisare()
- {
- int i;
- for(i = 1; i <= n; i++)
- cout << a[i] << " ";
- }
- int main()
- {
- Generare();
- QuickSort(1, n);
- Afisare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement