zoukankan      html  css  js  c++  java
  • 归并排序

    
    
     1 #include<stdio.h>
     2 void MERGE(int *A,int p,int q,int r){
     3     int i,j,k;
     4     int *B=malloc((r-p+1)*sizeof(int));
     5     i=p;j=q+1;k=0;
     6     while(i<=q&&j<=r){
     7         if(A[i]<A[j]){
     8             B[k]=A[i];
     9             i++;
    10         }
    11         else{
    12             B[k]=A[j];
    13             j++;
    14         }
    15         k++;
    16     }
    17     while(i<=q){B[k]=A[i];i++;k++;}
    18     while(j<=r){B[k]=A[j];j++;k++;}
    19     for(i=p,k=0;i<=r;i++,k++){
    20         A[i]=B[k];
    21     }
    23 }
    24 void MERGE_SORTUP(A,p,r){
    25     int q;
    26     if(p<r){
    27         q=(p+r)/2;
    28         MERGE_SORTUP(A,p,q);
    29         MERGE_SORTUP(A,q+1,r);
    30         MERGE(A,p,q,r);
    31     }
    32 }
    33 
    34 int main(){
    35     int A[]={19,28,73,65,53,14,34,27,1,0};
    36     int length=sizeof(A)/sizeof(int);
    37     int i;
    38     MERGE_SORTUP(A,0,0+length-1);
    39     for(i=0;i<length;i++)
    40     printf("%d	",A[i]);
    41 }

    结果:
    
    
  • 相关阅读:
    Git 基本操作
    Git 基础
    MarkDown教程
    Python常用函数
    Python生成器
    Python列表生成式
    Python迭代
    Python切片
    Python函数
    Python不可变对象
  • 原文地址:https://www.cnblogs.com/zzsf/p/3819137.html
Copyright © 2011-2022 走看看