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?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez trouver beaucoup de différents algorithmes de tri dans internet, mais si vous voulez fixer votre propre solution, vous pouvez faire les modifications suivantes dans votre code:
Au lieu de:
vous avez besoin pour ce faire:
Ce code fondamentalement vérifie si le particulier l'indice est occupé par un nombre similaire, puis il va essayer de trouver gratuit à côté de l'index.
Remarque: Puisque la valeur par défaut dans votre triée des éléments d'un tableau est 0, vous devez vous assurer que 0 n'est pas dans votre liste. sinon, vous devez
pour initier votre tableau trié particulièrement numéro qui vous est sûr
pas dans votre liste d'e.g:
Integer.MAX_VALUE
Simple algorithme de tri Tri à bulles:
Voici une solution simple
Et la sortie est:
Valeurs avant de les trier:
Valeurs après le tri:
Manière Simple :
Je recommanderais de regarder Tri de la sélection ou Le tri par Insertion si vous n'êtes pas trop inquiet au sujet de la performance. Peut-être que cela vous donnera quelques idées.
De tri à bulles peut être utilisé ici:
Tri de tableau sans l'aide des fonctions intégrées dans java ......juste faire un nouveau Fichier unsing ce nom -> (ArraySorting.java) ..... Exécutez le Projet et d'en Profiter !!!!!
de sortie:-
ordre croissant:-
101, 101, 102, 110, 111, 111, 112, 115
par ordre décroissant:-
115, 112, 111, 111, 110, 102, 101, 101
ici, c'est le Tri Simple Exemple essayer
Ce sera sûrement vous aider.