Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----HANOI-----
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("date.in");
- ofstream g("date.out");
- void hanoi(int n, char a, char b, char c)
- {
- if(n==1) g<<a<<"->"<<b<<endl;
- else
- {
- hanoi(n-1,a,c,b);
- g<<a<<"->"<<b<<endl;
- hanoi(n-1,c,b,a);
- }
- }
- int main()
- {
- int n;
- char a='A',b='B',c='C';
- f>>n;
- hanoi(n,a,b,c);
- }
- ----QUICK SORT----
- -se bazeaza pe divide et impera astfel se alege un element aflat in mijlocul vectorului numic element pivot
- -cu ajutorul algortitmului trebuie ca elementele din stanga pivotului sa fie mai mici decat pivotul si elementele din dreapta pivotului sa fie mai mari decat pivotul
- -primul element din stanga care nu indeplineste conditia cu primul element din dreapta care nu indeplineste conditia se interschimba intre ele si se continua cautarea
- -se aplica recursiv algoritmul pentru subvectorii determinati cu ajutorul pivotului
- #include <iostream>
- #include <fstream>
- using namespace std;
- ifstream f("date.in");
- ofstream g("date.out");
- int v[100],i,n;
- void QS(int i, int j)
- {
- int s,d,m,aux;
- s=i;
- d=j;
- m=v[(i+j)/2];
- while(s<=d)
- {
- while(v[s]<m) s++;
- /** il apropii de mijloc */
- while(v[d]>m) d--;
- /** il apropii de mijloc*/
- if(s<=d)
- {
- aux=v[s];
- v[s]=v[d];
- v[d]=aux;
- s++;
- d--;
- }
- }
- if(i<d) QS(i,d);
- if(j>s) QS(s,j);
- }
- int main()
- {
- f>>n;
- for(i=1;i<=n;i++)
- f>>v[i];
- QS(1,n);
- for(i=1;i<=n;i++)
- g<<v[i]<<" ";
- }
- -exista metode quick sort in care pivotul este eprimul sau ultimul element
- -metoda de sortare quick sort are timp de executie nlogn comparativ cu metodele studiate pana in acest moment care au timp de executie n^2
- ----MERGE SORT----
- - n-am inteles
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement