Implementação de ordem decrescente de classificação rápida em linguagem C
A classificação rápida é um algoritmo de classificação comumente usado. Sua flexibilidade e eficiência o tornam um dos métodos de classificação favoritos entre os programadores. Neste artigo, exploraremos como implementar o algoritmo de classificação rápida usando a linguagem C e implementaremos um exemplo de classificação descendente.
Implementação de ordem decrescente de classificação rápida em linguagem C
O algoritmo de classificação rápida é baseado na ideia de dividir e conquistar. Ao selecionar um elemento de referência, o array a ser classificado é dividido em dois subarrays. Os elementos menores que o elemento base são colocados na submatriz esquerda e os elementos maiores que o elemento base são colocados na submatriz direita. Em seguida, chamadas recursivas são feitas para as submatrizes esquerda e direita, respectivamente, até que o comprimento da submatriz seja 1 ou 0 e a classificação seja concluída.
Agora, vamos começar a implementar esse algoritmo!
#incluir
troca vazia(int *a, int *b) {
temperatura interna = *a;
*uma = *b;
*b = temperatura;
}
partição int(int arr[], int baixo, int alto) {
int pivô = arr[alto];
int i = (baixo - 1);
for (int j = baixo; j <= 1=“” alto=“” -=“”>
if (arr[j] > pivô) {
eu++;
trocar(&arr[i], &arr[j]);
}
}
swap(&arr[i + 1], &arr[alto]);
retornar (eu + 1);
}
void quickSort(int arr[], int baixo, int alto) {
if (baixo < alto) {
int pi = partição(arr, baixo, alto);
quickSort(arr, baixo, pi - 1);
quickSort(arr, pi + 1, alto);
}
}
int principal() {
int arr[] = {5, 2, 8, 3, 1};
int n = sizeof(arr) / sizeof(arr[0]);
quickSort(arr, 0, n - 1);
printf(\Resultados da classificação decrescente: \ for (int i = 0; i < n; i++) {
printf(\d\arr[i]);
}
retornar 0;
}
No código acima, primeiro definimos uma função swap que é usada para trocar dois elementos. Em seguida, usamos a função partição para determinar a posição correta do elemento base e dividir a matriz em duas submatrizes com base nessa posição. Finalmente, classificamos usando chamadas recursivas.
Na função principal, definimos um array arr a ser classificado e calculamos o comprimento n do array. Em seguida, chamamos a função quickSort para classificar o array e usamos a função printf para imprimir os resultados classificados.
O resultado da execução deste código será: Resultado da classificação em ordem decrescente: 8 5 3 2 1.
A complexidade de tempo do algoritmo de classificação rápida é O(nlogn), onde n é o comprimento da matriz a ser classificada. Isso significa que, no pior caso, a complexidade de tempo do algoritmo será O(n^2). No entanto, ao selecionar racionalmente os elementos de benchmark, podemos evitar ao máximo o pior cenário e, assim, melhorar o desempenho do algoritmo.
Para resumir, este artigo apresenta como usar a linguagem C para implementar o algoritmo de classificação rápida e demonstra-o usando a classificação descendente como exemplo. Espero que através deste artigo, os leitores possam compreender melhor os princípios e a implementação do algoritmo de classificação rápida e serem capazes de usá-lo de forma flexível em suas próprias práticas de programação. Se você tiver mais dúvidas sobre o algoritmo de classificação rápida ou quiser aprender mais conhecimentos relacionados, é recomendável ler mais materiais ou tutoriais relevantes.
Parte do código foi transferida de: https://www.ktiao.com/c/2023-08/254112.html