Advertisement
Dani_info

Sortari

Oct 1st, 2018
113
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void BubleSort(int[], int);
  6. void SelectionSort (int[], int);
  7. void InsertionSort(int[], int);
  8. void CountingSort (int[], int);
  9.  
  10. int main()
  11. {
  12.     cout<<"Cate elemente are vectorul"<<endl; int n; cin>>n;
  13.     int v[n];
  14.     cout<<"Introdu elemntele vectorului"<<endl;
  15.     for (int i=0; i<n; i++) cin>>v[i];
  16.     cout<<"Vectorul sortat este"<<endl;
  17.     //BubleSort(v, n);
  18.     //SelectionSort(v, n);
  19.     //InsertionSort(v, n);
  20.     CountingSort(v, n);
  21.     return 0;
  22. }
  23.  
  24.     void BubleSort (int v[], int n){
  25.         int ok;
  26.         do{
  27.             ok=1;
  28.             for (int i=0; i<n-1; i++){
  29.                 if (v[i]>v[i+1]){
  30.                     swap(v[i], v[i+1]);
  31.                     ok=0;
  32.                 }
  33.             }
  34.         }while (!ok);
  35.         for (int i=0; i<n; i++) cout<<v[i]<<" ";
  36.     }
  37.  
  38.     void SelectionSort (int v[], int n){
  39.         int ind;
  40.         for (int m=n-1; m>=0; m--){
  41.             int nmax=v[m];
  42.             for (int i=0; i<=m; i++){
  43.                 if (v[i]>nmax){
  44.                     nmax=v[i];
  45.                     ind=i;
  46.                 }
  47.             }
  48.             swap (v[m], v[ind]);
  49.  
  50.         }
  51.         for (int i=0; i<n; i++) cout<<v[i]<<" ";
  52.     }
  53.  
  54.     void InsertionSort(int v[], int n){
  55.         for (int i=1; i<n; i++){
  56.             int arr = v[i];
  57.             int ind=i-1;
  58.             while (ind>=0 && arr < v[ind]){
  59.                 v[ind+1]=v[ind];
  60.                 ind--;
  61.             }
  62.             v[ind+1]=arr;
  63.         }
  64.          for (int i=0; i<n; i++) cout<<v[i]<<" ";
  65.     }
  66.  
  67.     void CountingSort (int v[], int n){
  68.         int b[n], c[n];
  69.         for (int i=0; i<n; i++) b[i]=0;
  70.         for (int i=0; i<n-1; i++){
  71.             for (int j=i+1; j<n; j++){
  72.                 if (v[i]>v[j]) b[i]++;
  73.                 else b[j]++;
  74.             }
  75.         }
  76.         for (int i=0; i<n; i++) c[b[i]]=v[i];
  77.         for (int i=0; i<n; i++) cout<<c[i]<<" ";
  78.     }
Advertisement
RAW Paste Data Copied
Advertisement