[英]Sorting in ascending order an array of integers in Java
如何在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] + " ");
}
}
}
好吧,你總是可以使用適當的Comparator
使用Arrays.sort()
。 默認比較器按升序運行,因此只需使用此方法即可。
Java使用快速排序來對基本類型進行排序,並使用合並排序來排序對象,我認為使用Arrays.sort()對數組進行排序是很好的。
我想你正在尋找類似泡泡算法的東西......
您可以簡單地使用java.lang類的“Array.sort()”方法。
您可以使用Arrays.sort(int [] a) 。
在Java 6中,用於此方法的排序算法是a
調整快速排序 ,改編自Jon L. Bentley和M. Douglas McIlroy的“工程排序功能”,軟件實踐和經驗,卷。 23(11)P。1249-1265(1993年11月)。
在Java 7和8中,用於此方法的排序算法是a
由Vladimir Yaroslavskiy,Jon Bentley和Joshua Bloch組成的Dual-Pivot Quicksort 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.