Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int nrcomp;
- int pivot(int n, int a[100], int st, int dr)
- {
- int i, j, di=0, dj=1;
- i=st; j=dr;
- while(i!=j)
- {
- if(a[i]>a[j])
- {
- swap(a[i], a[j]);
- swap(di, dj);
- }
- i+=di;
- j-=dj;
- nrcomp++;
- }
- return i;
- }
- int pivot1(int n, int a[100], int st, int dr)
- {
- if(st==dr)
- return st;
- else
- {
- if(a[st]>a[dr])
- {
- swap(a[st], a[dr]);
- return pivot1(n, a, st, dr-1);
- }
- else
- return pivot1(n, a, st+1, dr);
- //nrcomp++;
- }
- }
- void quicksort(int n, int a[100], int st, int dr)
- {
- int p;
- if(st<dr)
- {
- p=pivot1(n, a, st, dr);
- quicksort(n, a, st, p-1);
- quicksort(n, a, p+1, dr);
- }
- }
- int main()
- {
- int a[100], n, i;
- cout<<"n="; cin>>n;
- for(i=0; i<n; i++) cin>>a[i];
- quicksort(n, a, 0, n-1);
- //cout<<pivot1(n, a, 0, n-1)<<endl;
- for(i=0; i<n; i++) cout<<a[i]<<" ";
- cout<<"\n Nr. comparatii="<<nrcomp;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement