0

مرتب سازی Heap

 
rezahashemian1374
rezahashemian1374
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 254
محل سکونت : تهران

مرتب سازی Heap

#include <iostream.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

void heapSort(int numbers[], int array_size);
void siftDown(int numbers[], int rootint bottom);
void main (void)
{
    const 
10;
    
int X[n];

    
randomize();
    for (
int i=0i<ni++)
    {
        
X[i] = rand() % 100;
        
cout << X[i] << "\t";
    }

    
heapSort (X,n);

    
cout<< endl;
    for (
i=0i<ni++)
        
cout << X[i] << "\t";

    
getch();
}

void heapSort(int numbers[], int array_size)
{
  
int itemp;

  for (
= (array_size 2)-1>= 0i--)
    
siftDown(numbersiarray_size);

  for (
array_size-1>= 1i--)
  {
    
temp numbers[0];
    
numbers[0] = numbers[i];
    
numbers[i] = temp;
    
siftDown(numbers0i-1);
  }
}



void siftDown(int numbers[], int rootint bottom)
{
  
int donemaxChildtemp;

  
done 0;
  while ((
root*<= bottom) && (!done))
  {
    if (
root*== bottom)
      
maxChild root 2;
    else if (
numbers[root 2] > numbers[root 1])
      
maxChild root 2;
    else
      
maxChild root 1;

    if (
numbers[root] < numbers[maxChild])
    {
      
temp numbers[root];
      
numbers[root] = numbers[maxChild];
      
numbers[maxChild] = temp;
      
root maxChild;
    }
    else
      
done 1;
  }

Seyyed.Reza.Hashemian@Gmail.Com

دوستانی که سوالی دارند یا مایل به تماس هستند می توانند از اطلاعات بالا استفاده نمایند.

اگر هم تایپکی زدید و احتیاج به پاسخگویی سریع داشتید اطلاع دهید

پنج شنبه 18 مهر 1392  8:57 AM
تشکرات از این پست
دسترسی سریع به انجمن ها