[Resolvido]Metodo de Ordenação "Radix Sort" em C
2 participantes
Grupo Lógica de Programação :: Central de Ajuda (Programação) :: Seção de Ajuda :: Central de Ajuda [C]
Página 1 de 1
[Resolvido]Metodo de Ordenação "Radix Sort" em C
Olá Pessoal, estou com muita dúvida em fazer um exercicio. Refere-se a ordenação pelo metodo Radix sort? alguém já ouviu falar?? Bom preciso considerar uma lista contendo N elementos com 3 algarismos, desta forma: 784,124,255,454,233,678,728,831,221,450 (dê 0 à 9). Na primeira iteração, deve ser criados10 vetores. Porém cada elemento será inserido na coluna cujo valor seja igual ao seu algarismo menos significativo, por ex., o valor 784 será inserido na coluna 4. Assim:
0 1 2 3 4 5 6 7 8 9
450 831 233 784 255 678
221 124 728
454
Depois o vetor original é reconstruído, respeitando essa nova ordem. Assim:
0 1 2 3 4 5 6 7 8 9
450 831 221 233 784 124 454 255 678 728
O algoritmo se repete, analisando agora o algarismo do meio, para o exemplo do 784 pelo número 8. As colunas ficarão:
0 1 2 3 4 5 6 7 8 9
221 831 450 678 784
124 233 454
728 255
Reconstrói-se novamente a lista original:
0 1 2 3 4 5 6 7 8 9
221 124 728 831 233 450 454 255 678 784
Repete o algoritmo novamente, analisando agora o algarismo mais significativo, para o exemplo do 784 pelo número 7. As colunas ficarão:
0 1 2 3 4 5 6 7 8 9
124 221 450 678 728 831
233 454 784
255
Com a reconstrução da lista original, tem-se o vetor ordenado. Assim:
0 1 2 3 4 5 6 7 8 9
124 221 233 255 450 454 678 728 784 831
Enfim, pessoal preciso fazer essa ordenação com este metodo Radix sort, por favor alguém pode me ajudar, explicar. Obrigada antecipadamente.
att,
Deia.
0 1 2 3 4 5 6 7 8 9
450 831 233 784 255 678
221 124 728
454
Depois o vetor original é reconstruído, respeitando essa nova ordem. Assim:
0 1 2 3 4 5 6 7 8 9
450 831 221 233 784 124 454 255 678 728
O algoritmo se repete, analisando agora o algarismo do meio, para o exemplo do 784 pelo número 8. As colunas ficarão:
0 1 2 3 4 5 6 7 8 9
221 831 450 678 784
124 233 454
728 255
Reconstrói-se novamente a lista original:
0 1 2 3 4 5 6 7 8 9
221 124 728 831 233 450 454 255 678 784
Repete o algoritmo novamente, analisando agora o algarismo mais significativo, para o exemplo do 784 pelo número 7. As colunas ficarão:
0 1 2 3 4 5 6 7 8 9
124 221 450 678 728 831
233 454 784
255
Com a reconstrução da lista original, tem-se o vetor ordenado. Assim:
0 1 2 3 4 5 6 7 8 9
124 221 233 255 450 454 678 728 784 831
Enfim, pessoal preciso fazer essa ordenação com este metodo Radix sort, por favor alguém pode me ajudar, explicar. Obrigada antecipadamente.
att,
Deia.
Andreia- Novo no Fórum
- Mensagens : 1
Pontos : 8
Reputação : 0
Data de inscrição : 17/09/2010
Depois de muito tempo,a resposta...
1 - Inicialize o vetor a ser ordenado
2- Inicialize 10 listas vazias
3 - Inicializa um valor M = 10 e N = 1
3 - Loop: para cada elemento do vetor faça
retire o resto da divisão do elemento por M
divida o resultado acima por N
Se o resultado da divisão acima for 0, guarde na lista de numero 0
Se for 1,guarde na lista de numero 1
Se for 2,guarde na 2
...
Fim
4 - Limpe o vetor original
5 - Adiciona ao vetor original os elementos da lista 0,lista1,lista2,lista3,etc..
6 - Limpe as listas (exceto o vetor original,claro)
7 - multiplique M por 10 e N por 10
8 - Volte ao passo 3 X vezes
Em que X é o tamanho máximo de caracteres encontrados em algum elemento do seu vetor. Exemplo: 1,5,90,45,107
O maior elemento é 107 que possui 3 caracteres,portando X é 3
2- Inicialize 10 listas vazias
3 - Inicializa um valor M = 10 e N = 1
3 - Loop: para cada elemento do vetor faça
retire o resto da divisão do elemento por M
divida o resultado acima por N
Se o resultado da divisão acima for 0, guarde na lista de numero 0
Se for 1,guarde na lista de numero 1
Se for 2,guarde na 2
...
Fim
4 - Limpe o vetor original
5 - Adiciona ao vetor original os elementos da lista 0,lista1,lista2,lista3,etc..
6 - Limpe as listas (exceto o vetor original,claro)
7 - multiplique M por 10 e N por 10
8 - Volte ao passo 3 X vezes
Em que X é o tamanho máximo de caracteres encontrados em algum elemento do seu vetor. Exemplo: 1,5,90,45,107
O maior elemento é 107 que possui 3 caracteres,portando X é 3
RammaR- Novo no Fórum
- Mensagens : 1
Pontos : 2
Reputação : 0
Data de inscrição : 07/03/2013
Tópicos semelhantes
» [Resolvido]super Basico! Ajuda!
» [Resolvido][Ajuda] C# - Erro na Syntax
» [Resolvido][Ajuda] em estruturas de dados
» [Resolvido]Ajuda raiz quadrada usando iteração.
» [Resolvido][AJUDA]Como montar este algoritmo
» [Resolvido][Ajuda] C# - Erro na Syntax
» [Resolvido][Ajuda] em estruturas de dados
» [Resolvido]Ajuda raiz quadrada usando iteração.
» [Resolvido][AJUDA]Como montar este algoritmo
Grupo Lógica de Programação :: Central de Ajuda (Programação) :: Seção de Ajuda :: Central de Ajuda [C]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Qua 02 maio 2018, 16:32 por Kiku Maroto
» Apostila Completa de Logica de Programação com VisualG
Qua 18 Jan 2017, 07:52 por andreaniti
» Exercícios Visualg: Desafio
Ter 03 Jan 2017, 07:41 por andreaniti
» 40 Exercícíos em Visualg 3.0
Ter 03 Jan 2017, 07:34 por andreaniti
» hello world pascal!
Qui 24 Nov 2016, 07:25 por andreaniti
» “[Ajuda] encontrar o valor da incógnita”
Ter 27 Set 2016, 14:48 por sanzio_ce
» Quero Trabalhar com a Alura.
Ter 23 Ago 2016, 05:43 por Sergio Lucas
» Sobre Pascal
Sex 19 Ago 2016, 07:49 por Clayton Souza
» Apresentação Lazarus
Qui 18 Ago 2016, 03:16 por Clayton Souza
» Trabalhe conosco
Qua 17 Ago 2016, 13:19 por Sergio Lucas