El lenguaje C ordena matrices de números enteros por segmentos, con números pares delante y números impares detrás, de pequeño a grande.
#¿Contiene? ltconio.h gt
¿#Definición? Ryan. 100?/*Longitud máxima de la matriz*/
#Definición? tipo de elemento? int? /*Tipo de elemento*/
/*Matriz de entrada*/
¿No es válido? entradaArr? (elemType?arr[],?int?len)? {
int? Yo;
¿Para qué? (I = 0;?i ltlen?i )
escanear? (" d ", amparr[I]);
putchar? ('\n');
}
/*Ordenar en orden ascendente de burbujas*/
/*Descripción del parámetro:*/
/*int? Arr[]: Ordenar matriz de destino */
/*int? Len: Número de elementos*/
¿No válido? burbujaOrdenarAsc? (elemType?arr[],?int?len)? {
elemType? Temperatura;
int? I,? j;
¿Para qué? (I = 0;?i ltlen-1;?i)? /*El bucle externo controla el número de pases de clasificación, el número de len-1 es len-1 */
¿Para qué? (j = 0;j ltlen-1-I;?j)? {?/*El número de comparaciones en cada paso del bucle interno, el paso j compara len-j veces*/
¿Y si? (arr[j]? gt? arr[j 1])? {?/*Comparar elementos adyacentes e intercambiar el orden inverso*/
¿Trabajadores temporales? =?arr[j];
arr[j]? =?arr[j 1];
arr[j 1]? =?Temperatura;
}
}
}
/*Imprimir matriz*/
¿No es válido? imprimirArr? (elemType?arr[],?int?len)? {
int? Yo;
¿Para qué? (I = 0;?i ltlen?i )
printf? (" d\t ", arr[I]);
putchar? ('\n');
}
int? ¿principal? (anulado)? {
elemType? arr[LEN];
elemType? arrod[LEN],? arr incluso[LEN];? /*Almacenar números pares e impares*/?
int? Ryan.
¿Odrún? EvenLen
int? I,? j? ,k;
imprimirf? ("Ingrese la longitud de la matriz:");
scanf? (" d ", amplio);
printf? ("Ingrese el contenido de la matriz:\n");
inputArr? (arr,?len);
/*Primero separe los pares e impares, luego ordene por separado y finalmente fusione*/
¿Para qué? (i=0,?j=0,?k=0;?i ltlen?i)? {
¿Y si? (arr[i]2)? {
arrod[j]? =?arr[I];
j;
}
¿Y si? {
arrEven[k]? =?arr[I];
k;
}
}
Odrun? =?j;
evenLen? =?k;
bubbleSortAsc? (arrOdd,?Odrun);
bubbleSortAsc? (Aruiwen,?even len);
¿Para qué? (k=0,?I = 0;?k ltevenLen?k,?i)
arr[i]? =?arrEven[k];
¿Para qué? (j = 0;?j ltOdrun;?j,?i)
arr[i]? =?arr impar[j];
printArr? (arr, len);
putchar? ('\n');
¿obtener? ();? /*Persistencia de pantalla*/
¿Gratis? (arr);
¿Volver? 0;
}Resultados de la ejecución
Nota: La parte de la matriz de entrada se omite en los resultados de la ejecución.