#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:
- Data Security
- MD5 and SHA-1 ( Hash Function Chryptography )
- Apa itu Algorithms?
- SORTING ALGORITHM #1
- SORTING ALGORITHM ANALYSIS
- Sejarah Kriptografi
- Keamanan Informasi dan Kriptografi
- Quick-sort Source-Code
- Merge-sort Source-Code
- Insertion-sort Source-Code
- Selection-sort Source-Code
- Heap-sort Source-Code
- Bubble-sort Source-Code
- Enkripsi RC4 part 2
- Matrix-Chain-Multiply Source-Code
- Matrix-Chain-Order
- LINEAR DISCRIMINANT ANALYSIS (LDA)

the merge function technique…
is too cumbersome.