归并排序~

来源:互联网 发布:c语言谭浩强第五 编辑:程序博客网 时间:2024/06/05 02:27
#include<stdio.h>void marge_sort(int *A,int x,int y,int *T)  //x___start,y___end+1//{    if(y-x>1)    {        int m=(x+y)/2;        int p=x,q=m,i=x;        marge_sort(A,x,m,T);        marge_sort(A,m,y,T);        while(p<m||q<y)        {            if(q>=y||(p<m&&A[p]<A[q]))T[i++]=A[p++];            else T[i++]=A[q++];        }        for(i=x;i<y;i++)A[i]=T[i];    }}int main(){    int a[]={1,5,4,2};    int t[4];    marge_sort(a,0,4,t);    printf("%d,%d,%d,%d",a[0],a[1],a[2],a[3]);}