Hablando de la función qsort

void qsort (void* base, size_t num, size_t size,
            int (*compar)(const void*,const void*));

Ordenar elementos
de una matriz Ordena el número de elementos de una matriz, cada uno de tamaño en bytes, utilizando una función de comparación para determinar el orden.

El algoritmo de clasificación utilizado por esta función compara pares de elementos tomando la función de comparación especificada con punteros a ellos como argumentos.

Esta función no devuelve ningún valor, pero modifica el contenido de la matriz a la que apunta básicamente reordenando sus elementos de acuerdo con la definición de comparación.

base es la dirección inicial, num es el número de elementos, size es el tamaño del elemento en bytes, compar es la función utilizada para ordenar y el parámetro es const void*.

define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int com_int(const void* e1, const void* e2)
{
	return *(int*)e1 - *(int*)e2;
}
void test()
{
	int arr[] = { 5,6,9,8,2,1,7,3,0,4 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	qsort(arr, sz, sizeof(arr[0]), com_int);
	for (int i = 0; i < sz; i++)
	{
		printf("%d", arr[i]);
	}
}
int main()
{
	test();
}

Como en el programa anterior, primero escriba la función de comparación com_int para establecer el método de clasificación, y la configuración del valor de retorno se obtiene restando los elementos, por lo que el resultado de la clasificación está en orden ascendente.

Luego configure la matriz en la función de prueba, llame a la función qsort e imprima el resultado.

 

Supongo que te gusta

Origin blog.csdn.net/m0_63742310/article/details/123544718
Recomendado
Clasificación