📄 merge.c
字号:
#include <stdio.h>#include <math.h>#include <stdlib.h>#include <sys/times.h>//Funcion merge//one more timevoid merge(int A[],int p, int q, int r){ //printf("merge p: %d \n ",p); int n1,n2,i,j,k; n1=q-p+1; n2=r-q; int L[n1+1]; int R[n2+1]; for(i=0;i<n1;i++) L[i] = A[p+i]; for(j=0; j<n2;j++) R[j] = A[q+1+j]; L[n1]=1000000; //coloco un flag tiende a inf R[n2]=1000000; i=0; j=0; for(k=p; k<=r; k++){ if (L[i] <= R[j]) { A[k]=L[i]; i=i+1; } else { A[k]=R[j]; j=j+1; } }}//Funcion merge_sortvoid merge_sort(int A[], double p, double r){double q; if (p < r) {//printf("valor de q: %.1lf \n",q); q=floor((p+r)/2.0); merge_sort(A,p,q);//printf("primer p: %.1lf, q: %.1lf, r: %.1lf \n ",p,q,r); merge_sort(A,q+1.0,r);//printf("segundo q+1: %.1lf, r: %.1lf \n ",q,r); merge(A,(int)p,(int)q,(int)r); //printf("tercer p: %.1lf, q: %.1lf, r:%.1lf \n ",p,q,r); //printf("r: %.1lf \n ",r); } //printf("p: %.d \t ",p);}int main(){int i, j;//int B[]={7,9,0,1,2,3,3,5,8,4};int tam=50;int B[tam];////Generando el arreglosrand(time(NULL));for (i = 0; i < tam; i ++) { B[i]=rand()%100;printf("%d =>",B[i]);}printf("ordenamiento **************************** \n"); merge_sort(B,0.0,(double)(tam-1));for(i=0;i<tam-1;i++)printf("%d =>",B[i]);printf("\n");//printf ("Tiempo Ordenamiento: \n");//printf("%.9f seconds\n", (long double)(stop_time.tms_utime-start_time.tms_utime)/1000.0f );return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -