二路归并排序(也叫合并排序)
下面这图展示了二路归并的过程
二路归并的核心代码是merge()函数喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+y/y9qzK49rfWuO61xMr91+nT0NDytcS6z7Ki1NrSu8bwPC9wPgo8cD7I5828o7o8L3A+CjxwPtTayv3X6UHW0KOsPC9wPgo8cD6003C1vXHKx9K7uPbK/dfpo6y003G1vXLKx8HtzeLSu7j2yv3X6TwvcD4KPHA+xMfDtMjnus69q9XiMrj2yv3X6dPQ0PK1xLrPsqLU2tK7xvCjrNfpuPbQwrXEyv3X6UHE2KO/PC9wPgo8cD6yvdboo7o8L3A+CjxwPrXa0ruyvaO6v6qx2dK7uPbK/dfpTKOstOa3xXC1vXHWrrzko6jSsr7NysfQ6NKquemyorXE1/Ox38r91+mjqbXE1KrL2DwvcD4KPHA+tdq2/rK/o7q/qrHZ0ru49sr91+lSo6y05rfFcbW9ctauvOSjqNKyvs3Kx9Do0qq56bKitcTT0rHfyv3X6aOptcTUqsvYPC9wPgo8cD612sj9sr2jujK49sr91+m1xNfuuvO7udKqvNPSu7j2zt7H7rTztcTK/aOov8nS1NPDMHg3RkZGse3KvqOpo6zS8rTLv6qx2bXEyv3X6b/VvOTSqrbgMdfWt/u49r/VvOQ8L3A+CjxwPrXay8SyvaO6TNPrUtbQtcTK/dfW1vC49rHIvc+jrLDRvc/QobXEz8i3xdTayv3X6UHW0KOotNPK/dfpQaG+MKG/v6rKvLTmt8WjrNLAtM7N+brzuLK4x9StwLS1xMr9o6mjrMi7uvO9z9ChtcTK/dfp1rjV6835uvPSxravo6zWuM/yz8LSu8671Nm6zcHtzeLSu7j2yv3X6bHIvc88L3A+CjxwPjxicj4KPC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140929/20140929091830263.jpg" alt="\">
//第一个参数为需要排序的数组,第2个参数为分割的第一个数组开始元素的下标
//第3个参数为分割的第一个数组的最后1个元素的下标
//第4个参数为数组最后1个元素的下标
void Merge(int *A,int p,int q,int r)
{
int n1,n2,i,j,k,g;
n1=q-p+1;
n2=r-q;
int *L,*R;
L=(int *)malloc(sizeof(int)*(n1+1));
R=(int *)malloc(sizeof(int)*(n2+1));
L[n1]=0x7fff; //开辟的左右2个数组最后1个数设置为最大值
R[n2]=0x7fff;
g=0;
for(i=p;i<=q;i++)
{
L[g]=A[i];
g++;
}
g=0;
for(i=q+1;i<=r;i++)
{
R[g]=A[i];
g++;
}
//逐个比较左右两组数组,把较小的值写入原来的数组
j=k=0;
for(i=p;i<=r;i++)
{
if(L[j]完整代码:
#includeusing namespace std;
//第一个参数为需要排序的数组,第2个参数为分割的第一个数组开始元素的下标
//第3个参数为分割的第一个数组的最后1个元素的下标
//第4个参数为数组最后1个元素的下标
void Merge(int *A,int p,int q,int r)
{
int n1,n2,i,j,k,g;
n1=q-p+1;
n2=r-q;
int *L,*R;
L=(int *)malloc(sizeof(int)*(n1+1));
R=(int *)malloc(sizeof(int)*(n2+1));
L[n1]=0x7fff; //开辟的左右2个数组最后1个数设置为最大值
R[n2]=0x7fff;
g=0;
for(i=p;i<=q;i++)
{
L[g]=A[i];
g++;
}
g=0;
for(i=q+1;i<=r;i++)
{
R[g]=A[i];
g++;
}
//逐个比较左右两组数组,把较小的值写入原来的数组
j=k=0;
for(i=p;i<=r;i++)
{
if(L[j]http://www.dengb.com/Javabc/887439.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/887439.htmlTechArticle二路归并排序(也叫合并排序) 下面这图展示了二路归并的过程 二路归并的核心代码是merge()函数 vcD4KPHA+y/y9qzK49rfWuO61xMr91+nT0NDytcS6z7Ki1...