#include <stdio.h>
#define MAX 10
void merge( int list[], int temp[], int left, int middle, int right)
{
int i=left, j=middle+1, k=left, t;
for( ; i <= middle && j <= right ; ) {
if( list[i] <= list[j] )
temp[k] = list[i++];
else
temp[k] = list[j++];
k += 1;
}
if( i > middle ) {
for( t = j ; t <= right ;)
temp[k++] = list[t++];
} else {
for( t = i ; t <= middle ;)
temp[k++] = list[t++];
}
for( t = left ; t <= right ; t++ )
list[t] = temp[t];
}
void mergeSort( int list[], int temp[], int left, int right)
{
int middle = 0;
if( left < right ) {
middle = (left+right)/2;
mergeSort(list, temp, left, middle);
mergeSort(list, temp, middle+1, right);
merge(list, temp, left, middle, right);
}
}
int main(){
int source[10]={26, 13, 77, 61, 35, 11, 8, 48, 15, 19};
int temp[10] = {0x0,};
mergeSort(source, temp, 0, 9);
}