rulururu





post Merge-sort Source-Code

November 27th, 2007

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


#include
#include
#define NUM_ITEMS 100
void mergeSort(int numbers[], int temp[], int array_size);
void m_sort(int numbers[], int temp[], int left, int right);
void merge(int numbers[], int temp[], int left, int mid, int right);
int numbers[NUM_ITEMS];
int temp[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();
mergeSort(numbers, temp, NUM_ITEMS); //perform merge 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 mergeSort(int numbers[], int temp[], int array_size)
{
m_sort(numbers, temp, 0, array_size - 1);
}

void m_sort(int numbers[], int temp[], int left, int right)
{
int mid;
if (right > left)
{
mid = (right + left) / 2;
m_sort(numbers, temp, left, mid);
m_sort(numbers, temp, mid+1, right);
merge(numbers, temp, left, mid+1, right);
}
counter++;
}

void merge(int numbers[], int temp[], int left, int mid, int right)
{
int i, left_end, num_elements, tmp_pos;
left_end = mid - 1;
tmp_pos = left;
num_elements = right - left + 1;
while ((left <= left_end) && (mid <= right))
{
if (numbers[left] <= numbers[mid])
{
temp[tmp_pos] = numbers[left];
tmp_pos = tmp_pos + 1;
left = left +1;
}
else
{
temp[tmp_pos] = numbers[mid];
tmp_pos = tmp_pos + 1;
mid = mid + 1;
}
counter++;
}
while (left <= left_end)
{
temp[tmp_pos] = numbers[left];
left = left + 1;
tmp_pos = tmp_pos + 1;
counter++;
}
while (mid <= right)
{
temp[tmp_pos] = numbers[mid];
mid = mid + 1;
tmp_pos = tmp_pos + 1;
counter++;
}
for (i=0; i <= num_elements; i++)
{
numbers[right] = temp[right];
right = right - 1;
counter++;
}
}

Inlinks :

(No Ratings Yet)
959 Views

1 Comment »

  1. the merge function technique…
    is too cumbersome.

    Comment by Aveek — January 31, 2008 @ 12:47 am

RSS feed for comments on this post. TrackBack URI

Leave a comment

Most Viewed Post/Page:

  • Tips : Mengatasi Komputer Bermasalah - 15,551 Views
  • Tips : Membuat Jaringan Wi-Fi - 6,757 Views
  • Download - 6,101 Views
  • Memilih Anti Virus - 5,248 Views
  • Apa itu Multimedia ? - 5,230 Views
  • SORTING ALGORITHM ANALYSIS - 4,864 Views
  • Tips : Merawat Komputer - 3,789 Views
  • Sejarah Kriptografi - 3,612 Views
  • Database - 3,383 Views
  • Power Builder 11.0 Launching - 3,374 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)