[英]Sorting in ascending order an array of integers in Java
How do I put in ascending order an array of integers in Java? 如何在Java中按升序排列整数数组? I have class and Pilha.java Ordenacao.Java, but the program is not working. 我有课和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] + " ");
}
}
}
How do I put in ascending order an array of integers in Java? 如何在Java中按升序排列整数数组?
By using Arrays.sort()
: 通过使用Arrays.sort()
:
int[] arr = ...;
Arrays.sort(arr);
Java使用快速排序来对基本类型进行排序,并使用合并排序来排序对象,我认为使用Arrays.sort()对数组进行排序是很好的。
我想你正在寻找类似泡泡算法的东西......
您可以简单地使用java.lang类的“Array.sort()”方法。
You can use Arrays.sort(int[] a) . 您可以使用Arrays.sort(int [] a) 。
In Java 6 the sorting algorithm used for this method is a 在Java 6中,用于此方法的排序算法是a
Tuned quicksort , adapted from Jon L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function", Software-Practice and Experience, Vol. 调整快速排序 ,改编自Jon L. Bentley和M. Douglas McIlroy的“工程排序功能”,软件实践和经验,卷。 23(11) P. 1249-1265 (November 1993). 23(11)P。1249-1265(1993年11月)。
In Java 7 and 8, the sorting algorithm used for this method is a 在Java 7和8中,用于此方法的排序算法是a
Dual-Pivot Quicksort by Vladimir Yaroslavskiy, Jon Bentley, and Joshua Bloch. 由Vladimir Yaroslavskiy,Jon Bentley和Joshua Bloch组成的Dual-Pivot Quicksort 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.