Red de conocimiento informático - Computadora portátil - Cómo utilizar la función de clasificación en lenguaje C

Cómo utilizar la función de clasificación en lenguaje C

No existe una función de clasificación preestablecida en lenguaje C. Si en lenguaje C se llama a la función de clasificación, es una función personalizada, que generalmente se usa para ordenar.

1. Puedes escribir tu propia función de clasificación.

La siguiente función ordena una matriz de números enteros de pequeño a grande.

void?sort(int?*a,?int?l)//a es la dirección de la matriz y l es la longitud de la matriz.

{

int?i,?j;

int?v;

//Clasificar asunto

for(i?=?0;?i?

for(j?=?i+1;?j?

{

if(a[i]?>?a[j])//Si el primero es más grande que el segundo, intercambie.

{

v?=?a[i];

a[i]?=?a[j];

a[j]?=?v;

}}}

Para una función de clasificación personalizada de este tipo, se puede llamar de acuerdo con las especificaciones definidas.

2. El lenguaje C tiene su propia función qsort.

Función: Ordenar usando una rutina de clasificación rápida

Archivo de encabezado: stdlib.h

Prototipo: void qsort(void *base,int nelem,int width ,int (*fcmp)(const void *,const void *));

Parámetros:

1 La primera dirección de la matriz a ordenar

2 La matriz a ordenar Número de elementos de clasificación

3 Tamaño del espacio ocupado por cada elemento

4 Puntero a la función, utilizado para determinar el orden de clasificación

Este La función debe escribirse por sí misma para la función de comparación, incluso si los elementos a ordenar son tipos básicos del lenguaje C, como int y float.

El siguiente es un ejemplo de qsort: ?

#include

#include

int?comp(const?void*a,const?void*b)//Función utilizada para comparar.

{

retorno?*(int*)a-*(int*)b;

}

int?main( )

{

int?a[10]?=?{2,4,1,5,5,3,7,4,1,5};//Caos matriz ordenada.

int?i;

qsort(a,n,sizeof(int),comp);//Llama a qsort para ordenar

for(i=0 ; i<10;i++)// Genera la matriz ordenada

{

printf("%d\t",array[i]);

}

return?0;}

Información ampliada:

Uso de la función de clasificación (llamada a la función de biblioteca de clasificación de C++)

Sí Hay funciones de biblioteca en C++ que nos ayudan a implementar la clasificación de matrices, por lo que no necesitamos programarnos para ordenar.

(1) ¿Por qué utilizar la función de clasificación en la biblioteca estándar de C++?

La función Sort() es uno de los métodos de clasificación en C++. Aprender este método también me desalienta de aprender C++. ¡El problema de la baja eficiencia de ejecución causada por la clasificación de burbujas y la clasificación de selección utilizadas en el pasado! Debido a que el método de clasificación que utiliza es similar a la clasificación rápida, la complejidad del tiempo es n * log2 (n) y la eficiencia de ejecución es alta.

(2) Cómo utilizar la función de clasificación en la biblioteca estándar de C++

I) La función de clasificación se incluye en la biblioteca estándar de C++ con el archivo de encabezado #include, y llama a la biblioteca estándar. El método de clasificación aquí no necesita saber cómo se implementa internamente, ¡siempre que aparezcan los resultados que queremos!

II) La función Ordenar tiene tres parámetros:

(1) El primero es la dirección inicial del array a ordenar.

(2) El segundo parámetro es la dirección final (la siguiente dirección de la última dirección que se ordenará)

(3) El tercer parámetro es el método de clasificación, que puede ser Puede ser de grande a pequeño o de pequeño a grande. No es necesario escribir el tercer parámetro. En este momento, el método de clasificación predeterminado es ordenar de pequeño a grande.

La función de clasificación utiliza una plantilla:

Ordenar (inicio, fin, método de clasificación)

A continuación se utilizará específicamente la función sort() para combinar los diez elementos. en la matriz ¡Haz una explicación de cómo ordenar los números!

Ejemplo 1: la función de clasificación no tiene un tercer parámetro y se implementa de pequeño a grande

#include

#include

p>

usando el espacio de nombres std;

int main()

{

int a[10]={9,6 ,3,8, 5,2,7,4,1,0};

for(int i=0;i<10;i++)

cout<

sort(a,a+11);

for(int i=0;i<10;i++)

cout <

return 0;

}

Compilador

GCC, un compilador gratuito de código abierto desarrollado por la organización GNU

MinGW, GCC bajo el sistema operativo Windows

Clang, un compilador de código abierto basado en LLVM del protocolo BSD

Visual C++?:: cl .exe, compilador propio de Microsoft VC++

Entorno de desarrollo integrado

CodeBlocks, código abierto e IDE C/C++ gratuito

CodeLite, código abierto, C multiplataforma /Entorno de desarrollo integrado C++

Orwell Dev-C++, IDE C/C++ portátil

C-Free

Mesa de luz

Visual Studio Serie

Hola mundo

Referencia: función de clasificación de la Enciclopedia Baidu