合并排序算法——merge sort

  • q0_894277
    了解作者
  • 168.8KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-14 04:08
    上传日期
#include <stdio.h> #include <malloc.h> #include <limits.h> void init(int A[],int p,int r);//初始化数组 void print_A(int A[],int p,int r);//打印数组元素 void merge(int A[],int p,int q,int r);//合并排序算法 /************合并排序算法的实现******************/ int main() { int p,q,r; printf("合并排序算法的实现:\n"); printf("请输入p、q、r的值(输入格式1,12,13):"); scanf("%d,%d,%d",&p,&q,&r); printf("p=%d,q=%d,r=%d\n",p,q,r); int * A = (int*)malloc((r+1)*sizeof(int)); init(A,p,r); printf("待合并数组:\n"); print_A(A,p,r); printf("\n\n"); printf("合并排序算法的实现过程:\n"); merge(A,p,q,r); free(A);//释放动态数组空间 return 0; }
merge.rar
  • merge
  • merge.dsp
    4.2KB
  • Debug
  • vc60.pdb
    44KB
  • merge.exe
    168.1KB
  • merge.pdb
    441KB
  • merge.obj
    7KB
  • vc60.idb
    33KB
  • merge.pch
    209KB
  • merge.ilk
    196.4KB
  • merge.dsw
    516B
  • merge.ncb
    41KB
  • merge.plg
    886B
  • merge.cpp
    1.8KB
  • merge.opt
    47.5KB
内容介绍
#include <stdio.h> #include <malloc.h> #include <limits.h> void init(int A[],int p,int r);//初始化数组 void print_A(int A[],int p,int r);//打印数组元素 void merge(int A[],int p,int q,int r);//合并排序算法 /************合并排序算法的实现******************/ int main() { int p,q,r; printf("合并排序算法的实现:\n"); printf("请输入p、q、r的值(输入格式1,12,13):"); scanf("%d,%d,%d",&p,&q,&r); printf("p=%d,q=%d,r=%d\n",p,q,r); int * A = (int*)malloc((r+1)*sizeof(int)); init(A,p,r); printf("待合并数组:\n"); print_A(A,p,r); printf("\n\n"); printf("合并排序算法的实现过程:\n"); merge(A,p,q,r); free(A);//释放动态数组空间 return 0; } /*************初始化数组****************************/ void init(int A[],int p,int r) { int i = p; printf("请输入数组元素:\n"); for(i;i<(r+1);i++) { scanf("%d",&A[i]); printf("A[%d]=%d",i,A[i]); printf("\n"); } printf("\n"); } /*****************************************************/ /*****************打印数组元素***********************/ void print_A(int A[],int p,int r) { for(p;p<(r+1);p++) printf("%d ",A[p]); printf("\n"); } /****************************************************/ /****************合并排序算法************************/ void merge(int A[],int p,int q,int r) { int n1 = q-p+1; int n2 = r-q; int * L = (int*)malloc((n1+1)*sizeof(int)); int * R = (int*)malloc((n2+1)*sizeof(int)); int i,j,k; for(i=0;i<n1;i++) L[i]= A[p+i]; for(j=0;j<n2;j++) R[j]=A[q+j+1]; L[n1]=INT_MAX;//设置边界,哨兵位; R[n2]=INT_MAX; i=0;j=0; for(k=p;k<=r;k++) { if(L[i]<=R[j]) { A[k]=L[i]; i++; } else { A[k]=R[j]; j++; } print_A(A,p,r); } free(L); free(R); } /****************************************************/
评论
    相关推荐
    • 算法分析之排序算法 排序算法
      想要了解各种排序算法吗,这里就是一些关于排序算法的分类
    • 排序demo排序算法
      能进行各种排序算法运算,排序直接插入排序,折半插入排序,表插入排序,希尔排序,冒泡排序,快速排序,选择排序,堆排序,二路归并排序,随机排序。 可进行int型 double型 和字符串排序 可手工输入、随机产生和从...
    • 排序算法
      Java常用算法开发基础资料。排序算法的汇总
    • 排序算法
      排序算法 一些用C#编写的经典排序算法作为练习。 使用列表而不是数组来实现,因为列表被设计为动态数组,容量过大时会加倍,这意味着它们的摊销效率就足够了。
    • 排序算法:不同的排序算法
      排序算法 我的第一次尝试是尝试使用不同类型的排序来完成一些很酷的事情,但是现在,这里只是我将上传许多排序算法的地方,这些算法将被编码为预热。 作为在开始执行某些任务之前进行预热的一种好方法,我想编写一...
    • 排序算法
      排序算法 排序算法及其实现。
    • 排序算法排序算法排序算法排序算法
      排序算法排序算法排序算法排序算法排序算法排序算法排序算法
    • 排序算法:Java排序算法
      排序算法 Java中的不同排序算法 选择排序 时间复杂度(大O): 最坏的情况:O(N ^ 2) 平均情况:O(N ^ 2) 插入排序 时间复杂度(大O): 最坏的情况:O(N ^ 2) 平均情况:O(N ^ 2)
    • c#排序法 算法 超全 超经典
      c#+排序算法大全+经典算法.rar c#+排序算法大全+经典算法.rar c#+排序算法大全+经典算法.rar
    • 直接插入排序法、冒泡排序法、直接选择排序法算法
      C语言代码 直接插入法排序算法fun1,冒泡排序排列算法fun2,直接选择法排序算法fun3。