Algoritmo de classificação e seu método de implementação em linguagem C
Algoritmos de classificação são uma parte importante da ciência da computação e desempenham um papel fundamental no processamento de dados e no design de algoritmos. No desenvolvimento de programação em linguagem C, dominar diferentes algoritmos de classificação e seus métodos de implementação é crucial para melhorar a qualidade e o desempenho do código. Este artigo se concentrará na discussão de algoritmos de classificação em linguagem C e apresentará vários algoritmos de classificação comuns e seus métodos de implementação.
1Algoritmo de classificação e seu método de implementação em linguagem C
Primeiro, vamos discutir o algoritmo de classificação por inserção. A ideia central do algoritmo de classificação por inserção é inserir os elementos a serem classificados na parte classificada, um por um. O método de implementação específico é o seguinte:
void inserçãoSort(int arr[], int n) {
int i, chave, j;
para (eu = 1; eu <n; eu++) {
chave = arr[i];
j = eu - 1;
while (j >= 0 && arr[j] > tecla) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = chave;
}
}
A seguir, vamos dar uma olhada no algoritmo de classificação por seleção. O algoritmo de classificação por seleção é um algoritmo de classificação simples e intuitivo. Sua ideia básica é selecionar o menor elemento dos elementos a serem classificados a cada vez e colocá-lo no final da parte classificada. O método de implementação específico é o seguinte:
seleção vaziaSort(int arr[], int n) {
int i, j, min_idx;
para (eu = 0; eu <n-1; eu++) {
min_idx = eu;
para (j = i + 1; j <n; j++) {
if (arr[j] <arr[min_idx])
min_idx = j;
}
temperatura interna = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
}
Em seguida, apresentaremos um algoritmo de classificação eficiente comumente usado - classificação rápida. O algoritmo quicksort classifica um array dividindo-o em dois subarrays, um menor e um maior, e então classificando recursivamente os subarrays. O método de implementação específico é o seguinte:
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++;
temperatura interna = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
temperatura interna = arr[i + 1];
arr[i + 1] = arr[alto];
arr[alta] = temp;
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);
}
}
Finalmente, introduzimos uma classificação por mesclagem de algoritmo de classificação estável. O algoritmo de classificação por mesclagem funciona dividindo uma matriz em duas submatrizes, depois classificando recursivamente as submatrizes e, finalmente, mesclando as duas submatrizes classificadas em uma matriz ordenada. O método de implementação específico é o seguinte:
mesclagem nula(int arr[], int l, int m, int r) {
int eu, j, k;
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
para (eu = 0; eu <n1; eu++)
eu[i] = arr[l + i];
para (j = 0; j < n2; j++)
R[j] = arr[m + 1+ j];
eu = 0;
j = 0;
k = eu;
enquanto (i < n1 && j < n2) {
se (L[i] <= r=“”>
arr[k] = L[i];
eu++;
}
outro {
arr[k] = R[j];
j++;
}
k++;
}
enquanto (eu <n1) {
arr[k] = L[i];
eu++;
k++;
}
enquanto (j <n2) {
arr[k] = R[j];
j++;
k++;
}
}
void mergeSort(int arr[], int l, int r) {
se (eu <r) {
int m = l+(rl)/2;
mesclarSort(arr, l, m);
mesclarSort(arr, m+1, r);
mesclar(arr, l, m, r);
}
}
Através da introdução dos algoritmos de classificação acima, temos uma compreensão preliminar dos algoritmos de classificação e seus métodos de implementação na linguagem C. Classificação por inserção, classificação por seleção, classificação rápida e classificação por mesclagem são algoritmos de classificação comumente usados, cada um com características diferentes e cenários aplicáveis. Em aplicações práticas, precisamos escolher o algoritmo de ordenação mais adequado de acordo com a situação específica. Ao mesmo tempo, podemos melhorar ainda mais o desempenho do algoritmo de classificação através da implementação do algoritmo de otimização ou da computação paralela.
Espero que a introdução deste artigo possa ajudá-lo a dominar melhor o algoritmo de classificação e seu método de implementação na linguagem C, melhorando assim sua capacidade de programação e qualidade e desempenho do código. No desenvolvimento real, é muito importante selecionar razoavelmente o algoritmo de classificação, o que afetará diretamente a eficiência de execução do programa. Através de pesquisa aprofundada e prática de algoritmos, podemos melhorar continuamente nosso design de algoritmos e capacidades de programação, estabelecendo uma base sólida para o desenvolvimento de programas eficientes e estáveis.
Parte do código foi transferida de: https://www.wodianping.com/c/2023-08/253559.html