Este artigo apresentará o Radix Sort e como implementar o Radix Sort em C. As dicas a seguir serão abordadas neste artigo,
como compilar programa java
Então, vamos começar,
Em palavras simples, classificar significa organizar os elementos fornecidos em uma ordem sistemática. A classificação é feita na maioria dos algoritmos porque torna a pesquisa mais fácil, o que eventualmente torna o algoritmo eficiente. Neste blog, vamos entender um dos algoritmos de soring comumente usados, ou seja, Radix sort.
A ordenação de raiz é um algoritmo de ordenação de números inteiros não comparativos. Ele faz a classificação dígito a dígito, começando do dígito menos significativo (ou seja, dígito presente à direita) para o dígito mais significativo (ou seja, dígito presente à esquerda). A classificação Radix usa a classificação por contagem como uma sub-rotina para classificar.
O limite inferior para o algoritmo de classificação baseado em comparação (como classificação de heap, classificação rápida, classificação de mesclagem) é & Omega (nLogn) e não pode ser melhorado além de nLogn. Se falamos sobre classificação de contagem, é um algoritmo de classificação de tempo linear com complexidade de tempo O (n + k), onde o intervalo está entre 1 a k. Agora, o problema com a contagem de classificação é que leva O (n2) quando os elementos variam de 1 a n2.
Portanto, para classificar uma matriz com elementos que variam de 1 a n2 em tempo linear, precisamos da classificação de raiz. Radix sort classifica a matriz dígito por dígito, começando do dígito menos significativo para o dígito mais significativo. A classificação Radix usa a classificação por contagem como uma sub-rotina para classificar.
Continuando com este artigo sobre o programa Radix Sort em C,
Algoritmo de classificação de raiz
Execute as etapas a seguir para todos os dígitos começando do dígito menos significativo presente à direita, movendo-se para o dígito mais significativo presente à esquerda.
Classifique os elementos usando a classificação por contagem de acordo com o dígito atual.
Exemplo:
Matriz Original:
140, 65, 85, 110, 612, 54, 12, 86
Classificar o dígito menos significativo, ou seja, no lugar de alguém, dá
140, 110, 612, 12, 54, 65, 85, 86
NOTA: Como 612 aparece antes de 12, e a classificação é feita apenas para um dígito, assim 612 aparece antes de 12 após esta iteração.
Classificar pelo próximo dígito, ou seja, na casa de 10s, dá:
110, 612, 12, 140, 54, 65, 85, 86
A classificação pelo dígito mais significativo, ou seja, presente na casa dos 100, dá:
012, 054, 065, 085, 086, 110, 140, 612
Continuando com este artigo sobre o programa Radix Sort em C,
Programa de classificação Radix em C
Primeiro, olhe para a função de classificação Radix
Função Radix Sort:
void radixsort (int array [], int n) {// Obtenha o maior número para saber o número máximo de dígitos int m = getMax (array, n) int dig // A classificação de contagem é realizada para cada dígito de (dig = 1 m / dig> 0 dig * = 10) countSort (array, n, dig)}
Continuando com este artigo sobre o programa Radix Sort em C,
Função de classificação de contagem:
void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Armazena a contagem de ocorrências em count [] para (i = 0 i= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copie o output array para arr [], de modo que arr [] agora // contém números classificados de acordo com o dígito atual para (i = 0 i Avançando, vamos escrever um programa C para implementar a classificação Radix.
Exemplo:
#include // Função para encontrar o maior número int getMax (int array [], int n) {int max = array [0] int i for (i = 1 i max) max = array [i] return max} // Função para Count sort void countSort (int array [], int n, int dig) {int output [n] int i, count [10] = {0} // Armazena a contagem de ocorrências em count [] para (i = 0 Eu= 0 i--) {output [count [(array [i] / dig)% 10] - 1] = array [i] count [(array [i] / dig)% 10] -} // Copie o output array para arr [], de modo que arr [] agora // contém números classificados de acordo com o dígito atual para (i = 0 i 0 dig * = 10) countSort (array, n, dig)} // Função para imprimir array void print (int arr [], int n) {int i for (i = 0 i Resultado
Agora, depois de executar o programa acima, você terá entendido o Programa Radix Sort em C. Assim, chegamos ao fim deste artigo em ‘Quicksort em Java’. Se você deseja saber mais, confira o , uma empresa confiável de aprendizagem online. O curso de certificação e treinamento Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para os conceitos básicos e avançados do Java, juntamente com várias estruturas Java como Hibernate e Spring.
Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.