pbp Δημοσ. 15 Οκτωβρίου 2011 Δημοσ. 15 Οκτωβρίου 2011 Γεια σας, Έχω φτιάξει 2 κλάσεις, Μια Main και μια με συναρτήσεις bubblesort. >package bubblesort; import java.util.Random; public class Main { public static void main(String[] args) { int[] A = new int[10]; Random randomNumbers = new Random(); for (int i = 0; i < 10; i++) { A[i]=(i+1)*10; //A[i] = randomNumbers.nextInt( 1000 ); //dimiourgia tuxaiwn arithmwn. } BubbleSort.PrintArray(A); System.out.println("\n"); //bubble sort! fthinousa seira. BubbleSort.Fthinousa(A); BubbleSort.PrintArray(A); //bubble sort! auksousa seira. System.out.println("\n"); BubbleSort.Auksousa(A); BubbleSort.PrintArray(A); } }] > package bubblesort; public class BubbleSort { public static void Fthinousa(int[] A) { for (int i = A.length; i > 1; i--) { for (int j = 0; j < i - 1; j++) { if (A[j] < A[j + 1]); { int temp = A[j]; A[j] = A[j + 1]; A[j + 1] = temp; } } } } public static void Auksousa(int[] A) { for (int i = A.length; i > 1; i--) { for (int j = 0; j < i - 1; j++) { if (A[j] > A[j + 1]); { int temp = A[j]; A[j] = A[j + 1]; A[j + 1] = temp; } } } } public static void PrintArray(int[] A) { for (int i = 0; i < A.length; i++) { System.out.printf("%d\n", A[i]); } } } Το πρόβλημα είναι ότι αν δουλέψω το πρόγραμμα με δικές μου τιμές δουλεύει κανονικά. Αν Όμως χρησιμοποιήσω την Random για τυχαίες τιμές τότε η ταξινόμησή μου δεν δουλεύει σωστά. Μπορείτε να μου εξηγήσετε τι συμβαίνει παρακαλώ? Ευχαριστώ πολύ.
pbp Δημοσ. 15 Οκτωβρίου 2011 Μέλος Δημοσ. 15 Οκτωβρίου 2011 για βγάλε τα ; μετά τις συνθήκες if Oops :} Σορρυ. Με την ευκαιρία όμως γιατι δουλεύει με τον πρώτο τρόπο και όχι με τον δεύτερο παρόλο τη βλακεία λάθος μου?
MeTaXaS4 Δημοσ. 15 Οκτωβρίου 2011 Δημοσ. 15 Οκτωβρίου 2011 λοιπόν το θέμα είναι ότι το if(statement); με το semicolon( ; ) ακυρώνεις το if(statement) αυτό σημαίνει ότι το block εντολών που ακολουθεί θα τρέξει κανονικά { function1(); function2(); } άρα έτσι πως έχεις τους κώδικες στις 2 συναρτήσεις σου, το μόνο που κάνει είναι να αλλάζει την σειρά που είναι ήδη μέσα οι αριθμοί, αυτό μπορείς να το διαπιστώσεις αλλάζοντας την σειρά που εκτελείς την αύξουσα και την φθίνουσα ταξινόμηση, ή βάζοντας 2 φορές την ίδια , το πρόγραμμα "τρέχει" κατάλαβες;
pbp Δημοσ. 15 Οκτωβρίου 2011 Μέλος Δημοσ. 15 Οκτωβρίου 2011 λοιπόν το θέμα είναι ότι το if(statement); με το semicolon( ; ) ακυρώνεις το if(statement) αυτό σημαίνει ότι το block εντολών που ακολουθεί θα τρέξει κανονικά { function1(); function2(); } άρα έτσι πως έχεις τους κώδικες στις 2 συναρτήσεις σου, το μόνο που κάνει είναι να αλλάζει την σειρά που είναι ήδη μέσα οι αριθμοί, αυτό μπορείς να το διαπιστώσεις αλλάζοντας την σειρά που εκτελείς την αύξουσα και την φθίνουσα ταξινόμηση, ή βάζοντας 2 φορές την ίδια , το πρόγραμμα "τρέχει" κατάλαβες; Απόλυτα! Αρα τυχαία δουλεύει σωστά στην πρώτη περίπτωση γιατί βάζω τα στοιχεια κατα φθίνουσα σειρά και τα μετατρέπω σε αύξουσα ενω με τους τυχαίους αριθμούς τα κανει μαντάρα ^^ ... Σε ευχαριστώ πολύ, Σορρυ και πάλι για την βλακεία ερώτηση μου, να σαι καλα
MeTaXaS4 Δημοσ. 15 Οκτωβρίου 2011 Δημοσ. 15 Οκτωβρίου 2011 βασικά ήταν κάτι που δεν φαινόταν , άρα no problem καλή συνέχεια.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.