void merge_sort(int *data, int start, int end, int *result)
{
if(1 == end - start)//如果区间中只有两个元素,则对这两个元素进行排序
{
if(data[start] > data[end])
{
int temp = data[start];
data[start] = data[end];
data[end] = temp;
}
return;
}
else if(0 == end - start)//如果只有一个元素,则不用排序
return;
else
{
//继续划分子区间,分别对左右子区间进行排序
merge_sort(data,start,(end-start+1)/2+start,result);
merge_sort(data,(end-start+1)/2+start+1,end,result);
//开始归并已经排好序的start到end之间的数据
merge(data,start,end,result);
//把排序后的区间数据复制到原始数据中去
for(int i = start;i <= end;++i)
data[i] = result[i];
}
}
a
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2UqcrkWc-1655391669843)(http://data.biancheng.net/uploads/allimg/170911/2-1F911161350260.png)]