Precauciones para la programación de compuestos de fresado y torneado de nueva generación Zexin CNC
Sub MergeSort(Array() Como entero, primero como entero, último como entero)
Dim mid como entero = 0
Si primero, último entonces
mid = (primero, último)\ 2
MergeSort(Array, primero, mid);
MergeSort(Array, mid 1, last);
Fusionar(Matriz, primero, medio, último);
Finalizar si
End Sub
/*
El siguiente El código de muestra implementa la operación de fusión. array[] es una secuencia de elementos, desde el índice p hasta la posición q, se organizan en orden ascendente. Al mismo tiempo, desde (q 1) hasta r, también se organizan en orden ascendente. ) La función fusionará estas dos subsecuencias ordenadas Combinadas en una secuencia ordenada. Los resultados se ponen en una matriz.
*/
/**
* 0 lt; = p lt; = q r, matriz de subarreglo[p..q] [q 1..r] ya están ordenados.
* la función merge() fusiona las dos submatrices en una matriz ordenada.
*/
void Merge(int array[], int p, int q, int r)
{
int i, k
int begin1, end1, comenzar2, finalizar2;
int* temp = (int*)malloc((r-p 1)*sizeof(int)); final1 = q;
comienzo2 = q 1;
final2 = r
k = 0
mientras((comienzo1 lt; ;= end1)&(begin2 lt;= end2))
{
if(array[begin1] lt;= array[begin2]){
temp[k] = matriz[comienzo1];
comenzar1
}
más
{
temp[k] = matriz[comienzo2];
comenzar2 ;
}
k
}
<; p> while(begin1lt;=end1 || begin2lt;=end2){
if(begin1lt;=end1)
{
temp[k ] = matriz[begin1 ];
}
if(begin2lt;=end2)
{
temp [k] = matriz[begin2];
}
}
para (i = 0; i lt; =(r - p); i )
matriz[p i] = temp[i]
libre(temp)
}