• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C语言归并排序算法示范代码

OC/C/C++ 水墨上仙 1488次浏览

C语言归并排序算法演示代码

#include <iostream>  
  
using namespace std;  
  
void merge(int*,int,int,int);  
void mergesort(int *a, int low,int high){  
    int pivot;  
    if(low<high){  
        pivot=(low+high)/2;  
        mergesort(a,low,pivot);  
        mergesort(a,pivot+1,high);  
        merge(a,low,pivot,high);  
    }  
}  
void merge(int *a,int low,int pivot,int high){  
    int h,i,j,b[50],k;  
    h=low;  
    i=low;  
    j=pivot+1;  
  
    while((h<=pivot)&&(j<=high)){  
        if(a[h]<=a[j]){  
            b[i]=a[h];  
            h++;  
        }  
        else{  
            b[i]=a[j];  
            j++;  
        }  
        i++;  
    }  
    if(h>pivot){  
        for(k=j; k<=high; k++){  
            b[i]=a[k];  
            i++;  
        }  
    }  
    else{  
        for(k=h; k<=pivot; k++){  
            b[i]=a[k];  
            i++;  
        }  
    }  
    for(k=low; k<=high; k++) a[k]=b[k];  
}  
int main(){  
    int a[] = {12,10,43,23,-78,45,123,56,98,41,90,24};  
    int num;  
  
    num = sizeof(a)/sizeof(int);  
  
    mergesort(a,0,num-1);  
  
    for(int i=0; i<num; i++)  
        cout<<a[i]<<" ";  
    cout<<endl;  
    system("pause");
    return 1;
}  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C语言归并排序算法示范代码
喜欢 (0)
加载中……