2016-12-11 1 views
0

J'essaie d'implémenter l'algorithme de tri à bulles dans mon code pour que la sortie apparaisse dans l'ordre croissant. Voici mon code ci-dessous suivi des erreurs que je reçois dans JGrasp. Tout conseil ou pointeur serait apprécié.Mise en œuvre de l'algorithme de tri à bulles de Java

import java.util.*; 

public class RandomArray 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Please enter the number 15 to generate 15 random numbers!"); 
     int randomIn = input.nextInt(); 
     int[] randomNumbers = new int[randomIn]; 
     if(randomIn != 15) 
     { 
     System.out.println("The number you entered was not 15. Please run the program again and enter 15..."); 
     } 
     else if(randomIn == 15) 
     { 
     for(int x = 0; x < randomNumbers.length; ++x) 
     { 
      randomNumbers[x] = (int) (Math.random()*50); 
      System.out.println("Your randomly generated numbers are: " + randomNumbers[x]); 
     } 
     } 

    } 
    public static void bubbleSort(int[] randomNumbers) 
     { 
     int n = randomNumbs.length; 
     int temp = 0; 
     for(int i = 0; i < n; i++) 
      { 
       for(int j = 1; j < (n - 1); j++) 
       { 
        if(randomNumbers[j-1] > randomNumbers[j]) 
        { 
         temp = randomNumbers[j - 1]; 
         randomNumbers[j - 1] = randomNumbers[j]; 
         randomNumbers[j] = temp; 
         for(int i=0); i<randomNumbers.length; i++) 
         { 
          System.out.print(randomNumbers[i] + " "); 
         } 
        } 
       } 
      } 
     } 


} 

Les erreurs que je reçois sont:

----jGRASP exec: javac -g RandomArray.java 
RandomArray.java:38: error: ';' expected 
         for(int i=0); i<randomNumbers.length; i++) 
           ^
RandomArray.java:38: error: not a statement 
         for(int i=0); i<randomNumbers.length; i++) 
            ^
RandomArray.java:38: error: ')' expected 
         for(int i=0); i<randomNumbers.length; i++) 
                  ^
RandomArray.java:38: error: ';' expected 
         for(int i=0); i<randomNumbers.length; i++) 
                   ^
4 errors 

----jGRASP wedge2: exit code for process is 1. 
----jGRASP: operation complete. 
+3

Vérifiez à nouveau, quelle est la syntaxe d'une boucle 'for' est ... – fabian

Répondre

1

Voici comment mettre en œuvre une sorte de bulle. Je viens d'écrire la méthode qui retourne un tableau. Cela commander vos numéros en ordre croissant:

public int []bubbleSort(int[] arr) { 
     int size = arr.length; 
     for (int pass = 1; pass < size; pass++) { 
     for (int i = 0; i < size-pass; i++) { 
      if (arr[i] > arr[i+1]) { 
       int temp = arr[i]; 
       arr[i] = arr[i+1]; 
       arr[i+1] = temp; 
      } 
     } 

     } 
     return arr; 
    } 
+0

Merci pour votre aide. C'était ce que je cherchais. –

+0

Vous êtes les bienvenus! – Intelligent

+0

@DontrellJohnson S'il vous plaît, si vous avez résolu le problème, marquez la bonne réponse. – Thrasher

0

Je pense que vous voulez faire générer des nombres aléatoires 15 et et l'imprimer dans l'ordre d'y adhérer
Voici le code.

import java.util.*; 
public class RandomArray 
{ 
    public static void main(String[] args) 
    { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Please enter the number 15 to generate 15 random numbers!"); 
     int randomIn = input.nextInt(); 
     int[] randomNumbers = new int[randomIn]; 
     if(randomIn != 15) 
     { 
     System.out.println("The number you entered was not 15. Please run the program again and enter 15..."); 
     } 
     else if(randomIn == 15) 
     { 
     for(int x = 0; x < randomNumbers.length; ++x) 
     { 
      randomNumbers[x] = (int) (Math.random()*50); 
      System.out.println("Your randomly generated numbers are: " + randomNumbers[x]); 
     } 
     bubbleSort(randomNumbers); 
     } 

    } 
    public static void bubbleSort(int[] randomNumbers) 
     { 
     int n = randomNumbers.length; 
     int temp = 0; 
     for(int i = 0; i < n; i++) 
      { 
       for(int j = 1; j < (n - 1); j++) 
       { 
        if(randomNumbers[j-1] > randomNumbers[j]) 
        { 
         temp = randomNumbers[j - 1]; 
         randomNumbers[j - 1] = randomNumbers[j]; 
         randomNumbers[j] = temp;      
        } 
       } 
      } 
      for(int k=0; k<randomNumbers.length; k++) 
      { 
      System.out.print(randomNumbers[k] + " "); 
      } 
     } 
} 
+0

Merci pour votre aide. J'ai vu où je me suis trompé grâce à votre aide. –

+0

@DontrellJohnson Si ma réponse vous a aidé, alors votez et acceptez. –