void merge_sort_impl(int* storage, int* array, int low, int mid, int high)
{
int i = low;
int j = low;
int k = mid;
if((low + 1) < mid)
{
int x = low + ((mid - low) >> 1);
merge_sort_impl(storage, array, low, x, mid);
}
if((mid + 1) < high)
{
int x = mid + ((high - mid) >> 1);
merge_sort_impl(storage, array, mid, x, high);
}
while(j < mid && k < high)
{
if((array[j]-array[k]) <= 0)
{
storage[i++] = array[j++];
}
else
{
storage[i++] = array[k++];
}
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余3页未读,立即下载