Eu estou tentando fazer um programa que consiste em uma matriz de 10 números inteiros que todos tem um valor aleatório, até agora tudo bem.
No entanto, agora eu preciso classificá-los na ordem do menor para o maior valor e depois imprimi-lo na tela, como eu faria isso?
(Desculpe por ter tanto código para um programa tão pequeno, eu não sou tão bom com loops, apenas comecei a trabalhar com Java)
public static void main(String args[])
{
int [] array = new int[10];
array[0] = ((int)(Math.random()*100+1));
array[1] = ((int)(Math.random()*100+1));
array[2] = ((int)(Math.random()*100+1));
array[3] = ((int)(Math.random()*100+1));
array[4] = ((int)(Math.random()*100+1));
array[5] = ((int)(Math.random()*100+1));
array[6] = ((int)(Math.random()*100+1));
array[7] = ((int)(Math.random()*100+1));
array[8] = ((int)(Math.random()*100+1));
array[9] = ((int)(Math.random()*100+1));
System.out.println(array[0] +" " + array[1] +" " + array[2] +" " + array[3]
+" " + array[4] +" " + array[5]+" " + array[6]+" " + array[7]+" "
+ array[8]+" " + array[9] );
}
Respostas:
Loops também são muito úteis para aprender, especialmente Ao usar matrizes,
fonte
Adicione a linha antes de println e sua matriz será classificada
fonte
Isso pode ajudá-lo a entender os loops ao se implementar. É fácil entender o tipo de bolha:
Obviamente, você não deve usá-lo na produção, pois existem algoritmos com melhor desempenho para grandes listas como QuickSort ou MergeSort, implementadas por
Arrays.sort(array)
fonte
Dê uma olhada em Arrays.sort ()
fonte
Eu estava com preguiça e adicionei os loops
Sua matriz possui um comprimento de 10. Você precisa de uma variável (
i
) que leve os valores de0
para9
.É um método de biblioteca que classifica matrizes.
fonte
fará o trabalho perfeitamente
fonte
Veja abaixo, ele fornecerá classificações ascendentes e descendentes
A saída será
Nota: Você pode usar Math.ranodm em vez de adicionar números de manual. Deixe-me saber se preciso alterar o código ...
Boa sorte ... Saúde !!!
fonte
Integer
quando puder usá-loint
, pois isso causará lentidão.fonte
Aqui está como usar isso em seu programa:
fonte
apenas para sua informação, agora você pode usar a nova API Java 8 para classificar qualquer tipo de matriz usando
parallelSort
parallelSort
usa a estrutura Fork / Join apresentada no Java 7 para atribuir as tarefas de classificação a vários threads disponíveis no pool de threads.os dois métodos que podem ser usados para classificar a
int
matriz,fonte
Para ordem natural:
Arrays.sort(array)
Para ordem inversa:
Arrays.sort(array, Collections.reverseOrder());
-> É um método estático na classe Collections que chamará ainda mais uma classe interna para retornar um comparador reverso.fonte
Você pode classificar uma matriz int com
Arrays.sort( array )
.fonte
O Java 8 fornece a opção de usar fluxos que podem ser usados para classificar
int[] array
como:Conforme mencionado no documento para
parallelSort
:Portanto, se a matriz de entrada for menor que a granularidade (8192 elementos no Java 9 e 4096 no Java 8, acredito),
parallelSort
simplesmente chame o algoritmo de classificação seqüencial.Caso desejemos reverter a matriz inteira, podemos usar o comparador como:
Como o Java não tem como classificar primitivas com o comparador personalizado, precisamos usar o boxe intermediário ou alguma outra biblioteca de terceiros que implemente essa classificação primitiva.
fonte
Você pode usar a função Arrays.sort () .
fonte
MANEIRA MAIS EFICAZ!
fonte
Se você deseja criar o algoritmo de classificação rápida e entender melhor como ele funciona, verifique o código abaixo:
1- Criar classe de classificação
2- Envie sua matriz não classificada para a
Quicksort
classe3- Saída
fonte
Também podemos usar a árvore de pesquisa binária para obter a matriz classificada usando o método transversal em ordem. O código também possui a implementação da árvore de pesquisa binária básica abaixo.
}
fonte