Tuesday, June 21, 2016

INCREMENT HEAP SORT WITH DESCENDING ORDER

#include <iostream>
#include <cstdio>
#include<cstdlib>
#include <string>
#include <cstring>
#include <algorithm>

using namespace std;

int arry[100];

int heapify(int i,int n)
{
    int leargest;
    int left=2*i+1;
    int right=2*i+2;
    if(left<n && arry[left]<arry[i])
        leargest=left;
    else
        leargest=i;
    if(right<n && arry[right]<arry[leargest])
        leargest=right;
    if(leargest!=i){
        swap (arry[i],arry[leargest]);
        heapify(leargest,n);
    }
}

int main ()
{
    int n,i;
    cout << "No of Array index : ";
    cin>>n;
    int temp = n;
    for(i=0; i<n; i++){
        cin>> arry[i];
    }
    for(int i=(n/2); i>=0; i--){
        heapify(i,n);
    }
     while(n>0){
        swap(arry[0], arry[n-1]);
        n--;
        heapify(0, n);
    }
    for(i=0; i<temp; i++)
     cout << arry[i] << " ";
     cout << endl;

    return 0;
}

No comments:

Post a Comment