zoukankan      html  css  js  c++  java
  • 【c语言】【每周一练】排序算法之归并排序

    #include <stdio.h>
    void  merge(int *const a,int p,int q, int r);
    void merge_sort(int a[],int p,int r);
    
    int main(void){
    int j;
    int arraynumber[]={3,5,1,2,0,-1,-3,7,9,8};
    int len=sizeof(arraynumber)/sizeof(int);
    merge_sort(arraynumber,0,len-1);
    for(j=0;j<len;j++)
    printf("%d\n",arraynumber[j]);
    return 0;
    }
    void  merge(int *const a,int p,int q, int r){
        int i,j,k,n1,n2,*left,*right;
        n1=q-p+1;
        n2=r-q;
        left=(int *)malloc((n1+1)*sizeof(int));
        right=(int *)malloc((n2+1)*sizeof(int));
        for(j=0;j<n1;j++)
        left[j]=a[p+j];
        left[j]=10000;
        for(j=0;j<n2;j++)
        right[j]=a[q+1+j];
        right[j]=10000;
        i=0;j=0;
        for(k=p;k<=r;k++){
        if(left[i]<=right[j]){
        a[k]=left[i];
        i++;
        }
        else{
        a[k]=right[j];
        j++;
    
        }
    
        }
        free(left);
        free(right);
        left=NULL;
        right=NULL;
    
    
    }
    void merge_sort(int a[],int p,int r){
        int q=0;
    if(p<r){
    q=(p+r)/2;
    merge_sort(a,p,q);
    merge_sort(a,q+1,r);
    merge(a,p,q,r);
    
    
    }
    
    }

    每周一练,day day  up!

  • 相关阅读:
    数据库
    多并发之协程
    坚持就是胜利
    线程
    python—函数
    pycharm—项目文件下的子目录的删除
    python—字符串连接方式
    python—字符串的切割
    pycharm教程
    python—迭代
  • 原文地址:https://www.cnblogs.com/huals/p/2560573.html
Copyright © 2011-2022 走看看