Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Sort
- {
- public:
- Sort(){}
- /// FUNZIONE PER L'ORDINAMENTO DELL'ARRAY BUBBLE-SORT
- void bobble_sort(int A[],int sizez)
- {
- for(int i=0;i<sizez;i++)
- {
- for(int j=i;j<sizez;j++)
- {
- if(A[j]<=A[i])
- {
- int k=A[i];
- A[i]=A[j];
- A[j]=k;
- }
- }
- }
- }
- ///COMPLESSITA O(n^2)
- /// FUNZIONE PER L'ORDINAMENTO DELL'ARRAY INSERTION-SORT
- void insertion_sort(int A[],int sizez)
- {
- for(int j=1;j<sizez;j++)
- {
- int key=A[j];
- int i=j-1;
- while(i>=0 && A[i]>key)
- {
- A[i+1]=A[i];
- i--;
- }
- A[i+1]=key;
- }
- }
- /// CASO FAVOREVOLE O(n) CASO MEDIO/PEGGIORE O(n^2)
- /// FUNZIONE PER L'ORDINAMENTO DELL'ARRAY MERGE-SORT
- void merges(int A[],int p,int q,int r)
- {
- int n1=q-p+1;
- int n2=r-q;
- int L[n1];
- int R[n2];
- for(int i=0;i<n1;i++)
- {
- cout<<"Array L ";
- L[i]=A[p+i];
- cout<<L[i];
- cout<<endl;
- }
- for(int j=0;j<n2;j++)
- {
- cout<<"Array R ";
- R[j]=A[q+j+1];
- cout<<R[j];
- cout<<endl;
- }
- cout<<endl;
- cout<<endl;
- int i=0,j=0,k=p;
- while (i<n1 && j<n2)
- {
- if (L[i]<=R[j])
- {
- A[k]=L[i];
- i++;
- k++;
- }
- else
- {
- A[k]=R[j];
- j++;
- k++;
- }
- }
- while(i<n1)
- {
- A[k]=L[i];
- i++;
- k++;
- }
- while(j<n2)
- {
- A[k]=R[j];
- j++;
- k++;
- }
- }
- void merge_sort(int A[],int in,int sizez)
- {
- if(in<sizez)
- {
- int r=(in+sizez)/2;
- merge_sort(A,in,r);
- r++;
- merge_sort(A,r,sizez);
- r--;
- merges(A,in,r,sizez);
- }
- }
- /// FUNZIONE PER L'ORDINAMENTO DELL'ARRAY QUICK-SORT
- void quick_sort(int A[],int p,int r)
- {
- int i=p,j=r;
- int temp;
- int pivot = A[((i+j)/2)];
- while(i<=j)
- {
- while(A[i]<pivot)
- i++;
- while(A[j]>pivot)
- j--;
- if(i<=j)
- {
- temp=A[i];
- A[i]=A[j];
- A[j]=temp;
- i++;
- j--;
- }
- }
- if(p<j)
- quick_sort(A,p,j);
- if(i<r)
- quick_sort(A,i,r);
- }
- /// FUNZIONE PER L'ORDINAMENTO DELL'ARRAY HEAP-SORT
- void heapify (int A[],int n,int i)
- {
- int larg=i;
- int l=2*i+1;
- int r=2*i+2;
- if (l<n && A[l]>A[larg])
- larg=l;
- if (r<n && A[r]>A[larg])
- larg=r;
- if(larg != i)
- {
- swap(A[i],A[larg]);
- heapify(A,n,larg);
- }
- }
- void heap_sort(int A[],int n)
- {
- for(int i=n/2-1;i>=0;i--)
- heapify(A,n,i);
- for(int j=n-1;j>=0;j--)
- {
- swap(A[0],A[j]);
- heapify(A,j,0);
- }
- }
- ~Sort(){}
- } ;
- int main()
- {
- int n=6;
- //int z=0;
- int B[]={10,6,25,40,2,36};
- Sort J;
- J.heap_sort(B,n);
- for(int i=0;i<n;i++)
- cout<<" "<<B[i];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement