Advertisement
Eternoseeker

Merge sort Employee ass

Dec 27th, 2022
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | Source Code | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class merg{
  5.     int arr[15] = {};
  6. public:
  7.     void input(int n){
  8.         for(int i = 0; i < n; i++){
  9.             cout << "Enter salary" << i + 1 << ": " << endl;
  10.             cin >> arr[i];
  11.         }
  12.     }
  13.  
  14.     void merge(int l, int m, int r) {
  15.        int i, j, k, nl, nr;
  16.        nl = m-l+1; nr = r-m;
  17.        int leftarr[nl], rightarr[nr];
  18.  
  19.        for(i = 0; i<nl; i++)
  20.           leftarr[i] = arr[l+i];
  21.        for(j = 0; j<nr; j++)
  22.           rightarr[j] = arr[m+1+j];
  23.  
  24.        i = 0; j = 0; k = l;
  25.        while(i < nl && j<nr) {
  26.           if(leftarr[i] <= rightarr[j]) {
  27.              arr[k] = leftarr[i];
  28.              i++;
  29.           }else{
  30.              arr[k] = rightarr[j];
  31.              j++;
  32.           }
  33.           k++;
  34.        }
  35.  
  36.        while(i<nl) {
  37.           arr[k] = leftarr[i];
  38.           i++; k++;
  39.        }
  40.        while(j<nr) {
  41.           arr[k] = rightarr[j];
  42.           j++; k++;
  43.        }
  44.     }
  45.  
  46.     void mergesort(int start, int end){
  47.         if(start < end){
  48.             int middle = (start + end)/2;
  49.             mergesort(start, middle);
  50.             mergesort(middle + 1, end);
  51.             merge(start, middle, end);
  52.         }
  53.         else{
  54.             return;
  55.         }
  56.     }
  57.  
  58.     void display(int n){
  59.         if(n < 5){
  60.             cout << "Top " << n << " employee salary: " << endl;
  61.             for(int i = n - 1; i >= 0; i--){
  62.                 cout << " " << arr[i];
  63.             }
  64.         }
  65.         else{
  66.             cout << "Top 5 employee salary: " << endl;
  67.             for(int i = n - 1; i > n - 6; i--){
  68.                 cout << " " << arr[i];
  69.             }
  70.         }
  71.     }
  72. };
  73.  
  74. int main(){
  75.     merg n;
  76.     int num = 0;
  77.     cout << "Enter no of employees (<15): " << endl;
  78.     cin >> num;
  79.     n.input(num);
  80.     n.mergesort(0, num-1);
  81.     n.display(num);
  82.     return 0;
  83. }
  84.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement