Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  piramidarry
Language: C/C++
Code:
#include <iostream> 
#include <algorithm> 
#include <clocale>
#define NMAX 50001 
using namespace std; 
int arr[NMAX+1]; 

void heapify (int pos, int n) { 
    while (2 * pos + 1 < n) { 
         
        int t = 2 * pos +1; 
        if (2 * pos + 2 < n && arr[2 * pos + 2] >= arr[t]) 
        { 
            t = 2 * pos + 2; 
        } 
        if (arr[pos] < arr[t]) { 
            swap(arr[pos], arr[t]); 
            pos = t; 
        }  
        else break; 
         
    } 


void heap_make(int n) 

    for (int i = n - 1; i >= 0; i--) 
    { 
        heapify(i, n); 
    } 

void heap_sort(int n) 

    heap_make(n); 
    while(n>0) 
    { 
        swap(arr[0],arr[n-1]); 
        n--; 
        heapify(0,n); 
    }  
cout<<"a[n] AFTER SORT:";
for(int i = 0; i < n; i ++) 
    {cout<<arr[i]<<" ";}cout<<endl;


int input(int n){
for(int i = 0; i < n; i ++) 
    { 
        cout<<"a["<<i+1<<"]="; 
     cin>> arr[i]; 
     cout<<endl;
    }
cout<<"a[n] BEFORE SORT:"<<endl;
for(int i = 0; i < n; i ++) 
    {cout<<arr[i]<<" ";}cout<<endl;
}
int main() 
{      
     setlocale(LC_ALL, "Russian");

    int n;
     cout<<"Razmer massiva a:"<<endl; 
    cin>>n; 
     if(n>1) {
    input(n);
    heap_sort(n); 
    for(int i = 0; i < n; i ++) 
    { 
        cout <<  arr[i]<<" "; 
    } }
     else {cout<<"Neverno zadan razmer"<<endl;}
     system("pause"); 
    return 0; 

                
          
          
          
          
          
          
Comments: