归并排序

原创 2012年03月22日 20:51:40
//coder:LEE
//20120322
#include<iostream>
#include<cassert>
#include<cmath>
using namespace std;
void Merge(int *A,int p,int q,int r)
{
int n1=q-p+1;
int n2=r-q;
int *L=new int[n1+1];
int *R=new int[n2+1];
for(int i=0;i<n1;i++)
L[i]=A[p+i];
for(int j=0;j<n2;j++)
R[j]=A[q+j+1];
L[n1]=(pow(2,31)-1);
R[n2]=(pow(2,31)-1);
i=0;
j=0;
for (int k=p;k<=r;k++)
{
if(L[i]<=R[j])
{
A[k]=L[i];
i++;
}
else
{
A[k]=R[j];
j++;
}
}


}
void MergeSort(int *A,int p,int r)
{
if (p<r)
{
int q=(p+r)/2;
MergeSort(A,p,q);
MergeSort(A,q+1,r);
Merge(A,p,q,r);
}
}
int main()



int A[]={3,1,7,43,5,8,44,9};
MergeSort(A,0,sizeof(A)/sizeof(int)-1);
for (int i=0;i<sizeof(A)/sizeof(int);i++)
{
cout<<A[i]<<" ";
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数据结构归并排序问题

二路归并排序

  • 2015-06-06 23:21
  • 38KB
  • 下载

归并排序之数组和链表

归并排序之数组与链表

归并排序算法

归并排序算法代码实现

归并排序的实现与讨论

归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列...

归并排序动画可运行jar

  • 2013-04-27 18:45
  • 11KB
  • 下载

归并排序

/****归并排序吧数组拆成单个,然后在进行排序合并*/ public class MergeSortClass { private int[] SortOut; public void pri...
  • fhlkm
  • fhlkm
  • 2013-06-14 15:28
  • 427
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)