Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream.h>
- int v[100],n;
- void citire()
- {
- int i;
- cin>>n;
- for(i=1;i<=n;i++)
- cin>>v[i];
- }
- void afisare()
- {
- int i;
- for(i=1;i<=n;i++)
- cout<<v[i]<<' ';
- cout<<endl;
- }
- int divide(int st, int dr)
- {
- /*plaseaza elementul v[st] pe pozitia sa corecta in vectorul ordonat
- in stanga sa sunt plasate numai elemente mai mici, iar in dreapta numai elemente mai mari
- si intoarce pozitia pe care a fost plasat a[st]*/
- int x;
- x=v[st];
- while(st<dr)
- {
- while(st<dr && v[dr]>=x)
- dr--;
- v[st]=v[dr];
- while(st<dr && v[st]<=x)
- st++;
- v[dr]=v[st];
- }
- v[st]=x;
- return st;
- }
- void qSort(int st, int dr)
- {
- //sorteaza elementele a[st],....,a[dr]
- int m=divide(st,dr);
- if(m-1>st)
- qSort(st,m-1);
- if(m+1<dr)
- qSort(m+1,dr);
- }
- int main()
- {
- citire();
- qSort(1,n);
- afisare();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment