关闭

归并排序

275人阅读 评论(0) 收藏 举报
void Merge(int* array, int* tempararay, int left, int middle, int right)
{
	int leftstart = left;
	int rightstart = middle-1;
	int tempIndex = leftstart;
	while(leftstart<rightstart)
	{
		if(array[leftstart]<array[rightstart])
		{
			tempararay[tempIndex++] = array[leftstart++];
		}
                else
		        tempararay[tempIndex++] = array[rightstart++];
	}	
}
void MergeSort(int* array, int* temparray, int left, int right)
{
	if(left < right)
	{
		int middle = (left+right)/2;
		MergeSort(array, temparray, left, middle);
		MergeSort(array, temparray, middle+1, right);
		Merge(array, temparray, left, middle+1, right);
	}
}



   
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:504963次
    • 积分:6698
    • 等级:
    • 排名:第3696名
    • 原创:87篇
    • 转载:489篇
    • 译文:0篇
    • 评论:32条
    最新评论