Java : Trier le tableau entier sans l'aide de Tableaux.sort()

C'est l'instruction dans l'un des exercices dans notre classe Java. Avant toute chose, je tiens à dire que je fais mes devoirs et je ne suis pas juste être paresseux demander à quelqu'un sur un Débordement de Pile pour répondre à cela pour moi. Cet élément a été mon problème de tous les autres exercices parce que j'ai eu du mal à trouver le parfait algorithme " pour ce.

Écrire un programme en JAVA qui va d'entrée de 10 valeurs entières et les afficher dans l'ordre croissant ou décroissant. Remarque: Les Tableaux.sort() n'est pas autorisé.

C'est le code que j'ai trouver, il fonctionne, mais il a un défaut évident. Si je entrer la même valeur à deux reprises ou plus, par exemple:

5, 5, 5, 4, 6, 7, 3, 2, 8, 10

Un seul des trois 5s saisies seront comptabilisés et inclus dans la sortie. La sortie-je obtenir (par ordre croissant) est:

2 3 4 5 0 0 6 7 8 10.

import java.util.Scanner;
public class Exer3AscDesc
{
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
int tenNums[]=new int[10], orderedNums[]=new int[10];
int greater;
String choice;
//get input
System.out.println("Enter 10 integers : ");
for (int i=0;i<tenNums.length;i++)
{
System.out.print(i+1+"=> ");
tenNums[i] = scan.nextInt();
}
System.out.println();
//imperfect number ordering algorithm
for(int indexL=0;indexL<tenNums.length;indexL++)
{
greater=0;
for(int indexR=0;indexR<tenNums.length;indexR++)
{
if(tenNums[indexL]>tenNums[indexR])
{
greater++;
}
}
orderedNums[greater]=tenNums[indexL];
}
//ask if ascending or descending
System.out.print("Display order :\nA - Ascending\nD - Descending\nEnter your choice : ");
choice = scan.next();
//output the numbers based on choice
if(choice.equalsIgnoreCase("a"))
{
for(greater=0;greater<orderedNums.length;greater++)
{
System.out.print(orderedNums[greater]+" ");
}
}
else if(choice.equalsIgnoreCase("d"))
{
for(greater=9;greater>-1;greater--)
{
System.out.print(orderedNums[greater]+" ");
}
}
}
}
  • Serait-il tricher pour créer un PriorityQueue, ajouter tous les articles, et ensuite à plusieurs reprises sondage jusqu'à ce que la file d'attente est vide?
InformationsquelleAutor ransan32 | 2012-11-25