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)
1,676 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 - 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)