Advertisement
Guest User

Untitled

a guest
Feb 21st, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. //#define N 50
  5.  
  6. using namespace std;
  7.  
  8. void heapify(int *arr, int n, int i){
  9.     int largest = i;
  10.  
  11.     int l = 2*i + 1;
  12.     int r = 2*i + 2;
  13.  
  14.     if(l < n && arr[l] > arr[largest])
  15.         largest = l;
  16.     if(r < n && arr[r] > arr[largest])
  17.         largest = r;
  18.     if (largest != i){
  19.         swap(arr[i],arr[largest]);
  20.         heapify(arr, n, largest);
  21.     }
  22. }
  23.  
  24. void heapSort(int *arr, int n){
  25.     for(int i=n/2-1;i>=0;i--)
  26.         heapify(arr, n, i);
  27.     for(int i = n-1;i>=0;i--){
  28.         swap(arr[0], arr[i]);
  29.         heapify(arr,i,0);
  30.     }
  31.  
  32. }
  33.  
  34. void printArray(int *arr, int n){
  35.     for(int i=0;i<n;i++)
  36.         cout << arr[i] << " ";
  37.     cout << endl;
  38. }
  39.  
  40. int main(){
  41.  
  42.     int n = 100;
  43.  
  44.     int *x = new int[n];
  45.     string *numbers = new string[n];
  46.  
  47.     ofstream fout("text.txt");
  48.  
  49.     for(int i=0;i<n;i++)
  50.         fout << rand() << " ";
  51.  
  52.     fout.close();
  53.  
  54.     ifstream fin("text.txt");
  55.     for(int i=0;i<n;i++)
  56.         fin >> numbers[i];
  57.  
  58.     fin.close();
  59.  
  60.     for(int i=0;i<n;i++){
  61.         x[i] = atoi(numbers[i].c_str());
  62.     }
  63.     //for(int i=0;i<100;i++)
  64.     //    cout << x[i] << " ";
  65.  
  66.     heapSort(x, n);
  67.  
  68.     cout << "Sorted array is " << endl;
  69.     printArray(x, n);
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement