#include<iostream>
using namespace std;
void Swao(int *arr, int i, int j)
{
arr[i] ^= arr[j];
arr[j] ^= arr[j];
arr[i] ^= arr[j];
}
int GetLength(int *arr)
{
return (sizeof(arr) / sizeof(arr[0]));
}
void Merge(int *arr, int l, int mid, int r)
{
int *help = new int[r - l + 1];
int i = 0;
int p1 = l;
int p2 = mid + 1;
while (p1<mid && p2<r)
{
help[i++] = arr[p1] > arr[p2] ? arr[p2++] : arr[p1++];
}
while (p1 < mid)
{
help[i++] = arr[p1++];
}
while (p2 < mid)
{
help[i++] = arr[p2++];
}
for (i = 0; i < GetLength(arr); i++)
{
arr[i] = help[i];
}
delete help;
}
void MergeSort_Code(int *arr, int l, int r)
{
if (arr == NULL || GetLength(arr) < 2 || l===r)
{
return ;
}
int mid = l + ((r - l) >> 1);
MergeSort_Code(arr, l, mid);
MergeSort_Code(arr, mid + 1, r);
Merge(arr, l, mid, r);
}
归并排序-C++实现
猜你喜欢
转载自blog.csdn.net/qq_41582910/article/details/104184752
今日推荐
周排行