如何在Java中按升序排列整数数组? 我有课和Pilha.java Ordenacao.Java,但该程序无效。
package lista03Pilhas;
public class Pilha {
// indica qual o tamanho maximo da pilha (tamanho maximo do vetor)
private int tamanhoMaximo;
// indica o topo da pilha (quantidade de itens do vetor)
private int topo;
// cria o vetor que ira implementar a pilha
private Object[] vetorPilha;
// construtor que recebe como parametro o tamanho da pilha (tamanho do vetor)
public Pilha(int length) {
// indica o tamanho da pilha (vetor)
tamanhoMaximo = length;
// instancia o vetor com o tamanho informado
vetorPilha = new Object[length];
// faz com que o apontador do topo indique que não há elementos na pilha
topo = -1;
}
// funcao que insere um objeto no topo da pilha
public void push(Object obj) {
// incrementa o topo (desloca para cima)
topo++;
// coloca o novo objeto na pilha
vetorPilha[topo] = obj;
}
// funcao que remove um objeto do topo da pilha
public Object pop() {
// verifica se a pilha esta vazia
if (topo < 0) {
return null;
} else {
// obtem o objeto do topo da pilha
Object auxiliar = vetorPilha[topo];
// decrementa o topo (desce um item na pilha)
topo--;
// retorna o elemento do topo da pilha
return auxiliar;
}
}
// funcao que verifica quem esta no topo da pilha
public Object top() {
// verifica se a pilha esta vazia
if (topo < 0) {
return null;
} else {
return vetorPilha[topo];
}
}
// verifica se a pilha esta vazia
public boolean isEmpty() {
// verifica se o topo aponta para algum indice valido do vetor
if (topo == -1) {
return true;
} else {
return false;
}
}
// verifica se a pilha esta cheia
public boolean isFull() {
// verifica se o topo aponta para o ultimo elemento do vetor
if (topo == tamanhoMaximo - 1) {
return true;
} else {
return false;
}
}
}
package lista03Pilhas;
public class Ordenacao {
public static int[] ordenarDecrescente(int v[]) {
Pilha minhaPilha = new Pilha(v.length);
recebePilha(minhaPilha);
int vetor[] = new int[v.length];
for (int i = 0; i < v.length; i++) {
vetor[i] = v[i];
minhaPilha.push(vetor[i]);
}
int u = ((Integer) minhaPilha.pop()).intValue();
return vetor;
}
public static void recebePilha(Pilha pilha){
}
}
package lista03Pilhas;
import java.util.Arrays;
import java.util.Scanner;
public class Lista03Pilhas {
public static void main(String[] args) {
int v[] = new int[]{100, 20, 15, 9, 8, 7, 1};
System.out.println("Vetor:" + Arrays.toString(Ordenacao.ordenarDecrescente(v)));
int p;
int m;
Scanner ent = new Scanner(System.in);
int[] ordenarDecrescente = Ordenacao.ordenarDecrescente(v);
Pilha minhaPilha = new Pilha(v.length);
for (int i = 0; i < v.length; i++) {
minhaPilha.push(v[i]);
Object menor = minhaPilha.pop();
System.out.print(minhaPilha.pop());
}
System.out.println("");
for (int i = 0; i < v.length; i++) {
System.out.print(v[i] + " ");
}
}
}
答案 0 :(得分:6)
答案 1 :(得分:1)
嗯,您始终可以Arrays.sort()
使用适当的Comparator
。默认比较器按升序运行,因此只需使用this方法。
答案 2 :(得分:1)
Java使用快速排序对基本类型进行排序,并使用合并排序对对象进行排序,我认为使用Arrays.sort()对数组进行排序是很好的。
答案 3 :(得分:0)
我认为你正在寻找像Bubble算法......
答案 4 :(得分:0)
您可以简单地使用java.lang类的“Array.sort()”方法。
答案 5 :(得分:0)
您可以使用Arrays.sort(int[] a)。
在Java 6中,用于此方法的排序算法是一个 Tuned quicksort ,改编自Jon L. Bentley和M. Douglas McIlroy&#34; Engineering a Sort Function&#34;,Software-Practice and Experience,Vol。 23(11)P。1249-1265(1993年11月)。
在Java 7和8中,用于此方法的排序算法是一个 Vladimir Yaroslavskiy,Jon Bentley和Joshua Bloch的 Dual-Pivot Quicksort 。