非递归的归并排序

来源:互联网 发布:如何用微博推广淘宝 编辑:程序博客网 时间:2024/05/16 04:31
void MergeSort(int *list1,int length){    int i,lmin,lmax,rmin,rmax,next;    int *tmp=new int[length];    if(tmp==NULL)       cout<<"Wrong!\n";    for(i=1;i<length;i*=2)    {        for(lmin=0;lmin<length-i;lmin=rmax)        {            rmin=lmax=lmin+i;            rmax=lmax+i;            if(rmax>length)                rmax=length;            next=0;            while(lmin<lmax&&rmin<rmax)                tmp[next++]=list1[lmin]>list1[rmin]?list1[rmin++]:list1[lmin++];            while(lmin<lmax)                list1[--rmin]=list1[--lmax];            while(next>0)                list1[--rmin]=tmp[--next];        }    }    delete []tmp;    return ;}
0 0
原创粉丝点击