实现算法导论第三版中的MergeSort

去掉了原算法中的无穷大值。代码如下:

#include 
#include 
#include 
#include 

void mergeSort(char arr[], int p, int r);

int main()
{
		
	char arr[]={'5', '2', '4', '7', '1', '8', '3', '2', '6'};
	int count = sizeof(arr);
	
	mergeSort(arr, 0, count - 1);
	
	for(int i=0; i0);
	assert(n2>0);
	assert(p<=q);
	assert(q-1);
	assert(q>-1);
	assert(r>-1);	

	printf("merge:start:arr=");
	for(int i=p; i<=r; i++)
		printf("%c,", arr[i]);
	
	printf("\n");	

	char * lArr = malloc(n1);
	char * rArr = malloc(n2);

	//for i = 1 to n1
	//	L[i] = A[p+i-1]
	memcpy(lArr, arr+p, n1); //safe
	puts("lArr");
	for(int i=0; i

你可能感兴趣的:(数据结构与算法)