Pasantía de metalurgia en la escuela, ese tipo de máquina herramienta de torneado antigua, ¿cómo programar esto? Me resfrié hoy y no escuché.
#include
#include
voidMerge(int*a,intlow,intmid,inthigh){ p>
inti=bajo,j=mid+1,k=0;
int*temp=(int*)malloc((alto-bajo+1)*sizeof(int));
mientras(i<=medio&&j<=alto)
a[i]<=a[j]?(temp[k++]=a[i++]):(temp[ k++]=a[j++]);
mientras(i<=mid)
temp[k++]=a[i++];
mientras(j <=alto)
temp[k++]=a[j++];
memcpy(a+bajo,temp,(alto-bajo+1)*sizeof(int));
libre(temp);
}
voidMergeSort(int*a,intn){
intlength;
for(longitud=1;longitud inti; for(i=0;i+2*longitud-1<=n -1;i+=2*longitud) Fusionar(a,i,i+longitud-1,i+2*longitud-1); if(i+longitud< =n-1)//Todavía hay dos subarchivos, el último de los cuales tiene menos longitud Merge(a,i,i+length-1,n-1); } } intmain(){ intn; cin>>n; int* datos=nuevo int[n]; if(!data) salir(1); intk=n; mientras(k--){ cin>>datos[n-k-1]; } clock_ts=reloj( ); MergeSort(datos,n); reloj_te=reloj(); k=n; mientras(k --){ cout< } cout< cout<<"thealgrothemused"< deletedata; return0; }