rulururu





post Heap-sort Source-Code

November 27th, 2007

Filed under: Algorithms — Unggul_USA @ 2:28 pm — View blog reactions


#include
#include
#define NUM_ITEMS 100
void heapSort(int numbers[], int array_size);
void siftDown(int numbers[], int root, int bottom);
int numbers[NUM_ITEMS];
int counter;
int main()
{
int i; //seed random number generator
srand(getpid()); //fill array with random integers
for (i = 0; i < NUM_ITEMS; i++)
numbers[i] = rand();
heapSort(numbers, NUM_ITEMS); //perform heap sort on array
for (i = 0; i < NUM_ITEMS; i++)
printf("%i\n", numbers[i]);
printf("Done with sort.\n");
printf("%i %i\n", i, counter);
}

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

for (i = (array_size / 2)-1; i >= 0; i–)
siftDown(numbers, i, array_size);
for (i = array_size-1; i >= 1; i–)
{
temp = numbers[0];
numbers[0] = numbers[i];
numbers[i] = temp;
siftDown(numbers, 0, i-1);
}
}

void siftDown(int numbers[], int root, int bottom)
{
int done, maxChild, temp;
done = 0;
while ((root*2 <= bottom) && (!done))
{
if (root*2 == bottom)
maxChild = root * 2;
else if (numbers[root * 2] > numbers[root * 2 + 1])
maxChild = root * 2;
else
maxChild = root * 2 + 1;
counter++;
if (numbers[root] < numbers[maxChild])
{
temp = numbers[root];
numbers[root] = numbers[maxChild];
numbers[maxChild] = temp;
root = maxChild;
}
else
done = 1;
counter++;
}
}

Inlinks :

(No Ratings Yet)
1,698 Views

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Most Viewed Post/Page:

  • Tips : Mengatasi Komputer Bermasalah - 24,458 Views
  • Tips : Membuat Jaringan Wi-Fi - 18,396 Views
  • Memilih Anti Virus - 10,103 Views
  • SORTING ALGORITHM ANALYSIS - 9,849 Views
  • Apa itu Multimedia ? - 9,665 Views
  • Download - 9,584 Views
  • Tips : Merawat Komputer - 7,969 Views
  • Tip And Trik Macromedia Flash 8.0 - 7,633 Views
  • Tips : Komputer Aman Dari Virus - 6,112 Views
  • Sejarah Kriptografi - 5,863 Views
  • Most Rated Post/Page:

  • Tips : Membuat Jaringan Wi-Fi - 8 Votes
  • Tips : Mengatasi Komputer Bermasalah - 7 Votes
  • Download - 5 Votes
  • Tips : Komputer Aman Dari Virus - 5 Votes
  • Memilih Anti Virus - 4 Votes
  • Menjalankan Banyak Account Yahoo Messenger - 3 Votes
  • Aplikasi Web Atau Aplikasi Desktop ? - 3 Votes
  • Aplikasi Untuk Amankan Data Penting - 3 Votes
  • Tips : Merawat Komputer - 2 Votes
  • Database #2 - 2 Votes
  • ruldrurd
    porn movies buy online pharmacy viagra soft tabs viagra or levitra order cialis soft tabs online information on viagra for woman cheap cialis soft tabs levitra cheap generic viagra online viagra levitra purchase uk free cialis order online cialis cream for women levitra for women online viagra soft tabs
    Powered by WordPress, Web Design by Laurentiu Piron
    Entries (RSS) and Comments (RSS)