Red de conocimiento informático - Conocimiento de la instalación - Análisis de algoritmo no recursivo para clasificación rápida en lenguaje C.

Análisis de algoritmo no recursivo para clasificación rápida en lenguaje C.

// Algoritmo no recursivo de fila rápida

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);

}