排序札记

归并排序

每次只需要把两个序列的最小元素加以比较,删除其中较小元素并入合并后的新表即可。

viod merge_sort(int *A,int x,inty,int *T)

{

if(y-x>1)

{

int m=x+(y-x)/2;

int p=x,q=m,i=x;

merge_sort(A,x,m,T);

merge_sort(A,m,y,T);

while(p<m||q<y)

{

if(q>=y||(p<m&&A[p]<=A[q]))

else T[i++]=A[q++];

}

for(i=x;i<y;i++)A[i=T[i];

}

}

posted @ 2012-03-07 15:17  月之华  阅读(106)  评论(0编辑  收藏  举报