归并排序
递归代码实现归并:
void _MergeDate(int* array,int left,int mid,int right,int* temp)
{
int index1 = left;
int index2 = mid;
int index = left;
while(index1<mid && index2<right)
{
if(array[index1]<=array[index2])
temp[index++] = array[index1++];
else
temp[index++] = array[index2++];
}
while(index1<mid)
temp[index++] = array[index1++];
while(index2<right)
temp[index++] = array[index2++];
}
void _MergeSort(int* array,int left,int right,int* temp)
{
if(right-left>1)
{
//求中间位置
int mid = left+((left-right)>>1