随笔分类 -  排序

摘要:#include#define MAX 1000#define LEFT(i) (i>1)//父亲结点#define exchage(x,y,z) {z=x;x=y;y=z;}//交换x和yusing namespace std;int size = 0, a[MAX];/*保证每棵子树的根节点最大*/void MAX_HEAPIFY(int a[], int k)//维护最大堆{ int l = LEFT(k), r = RIGHT(k), largest, t; if (l a[k]) largest = l; else largest = ... 阅读全文
posted @ 2014-01-15 20:32 偶尔会寂寞 阅读(494) 评论(0) 推荐(0)
摘要:分治的思想包括了三个基本的步骤:1.分解;2.解决;3.合并。归并排序最主要的就是“合并”。 1 //分治算法 2 #include 3 #define infinite 32767 4 5 //合并 6 void Merge(int *A,int p,int q,int r) 7 { 8 int n1,n2,*L,*R,i,j,k; 9 n1=q-p+1;10 n2=r-q;11 L=new int[n1+1];12 R=new int[n2+1];13 for(i=0;i<n1;i++)14 L[i]=A[p... 阅读全文
posted @ 2013-11-15 17:13 偶尔会寂寞 阅读(157) 评论(0) 推荐(0)