Análisis de algoritmo no recursivo para clasificación rápida en lenguaje C.
void merge(int a[], int low, int center, int high){// La combinación aquí es diferente a la del libro de texto. Usamos dos matrices L[] y R[] para almacenar los dos datos que deben fusionarse en a[]
int i = 0
int j = 0; ;
p>
int k = 0;
int count = 0;
if(low gt; = high) return; >
int m = centro - bajo 1;
int n = alto - centro
int *L = (int *)malloc(sizeof(int)*SCALE)
int *R = (int *)malloc(tamañode(int)*ESCALA);
if(!L || !R){
printf("¡Asignación de memoria defectuosa de merge () por clasificación de subsunción!");
exit(0); countlt;=m; count){
L[count] = a[low count]
}
for( int count=0; count lt ; =n; recuento ){
R[recuento] = a[recuento bajo m]; , k=bajo; ilt; mamp ;amp;jlt;n;k){
si( L[i] lt; = R[j] ){
a[k ] = L[i];
}
else{
a[k] = R[j]
}<; /p>
}
mientras(i lt; m){
a[k] = L[i]
}
while(j lt ; n){
a[k ] = R[j ]
}
libre(L); /p>
gratis( R);
}