Προς το περιεχόμενο

ταξηνομηση σε java


liapinio

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια και καλες γιορτες!θελω λιγη βοηθεια σχετικα με μια ασκηση σε java..

 

Να γίνει μία τάξη Book η οποία θα χρησιμοποιηθεί για τα βιβλία μιας βιβλιο-

θήκης. Για κάθε βιβλίο να δηλώσετε τις μεταβλητές title (String) για τον τίτλο του

βιβλίου, author (επίσης String) για τον συγγραφέα και firstEdition (int) που είναι το

έτος της πρώτης έκδοσης. Όλες οι μεταβλητές θα πρέπει να είναι ιδιωτικές (private).

Να δώσετε μεθόδους get και set για όλες τις ιδιότητες που αναφέρθηκαν πα-

ραπάνω.

Στη συνέχεια δημιουργείστε ένα πρόγραμμα το οποίο θα δημιουργήσει ένα πί-

νακα έξι βιβλίων. Τέλος η main θα πρέπει να ταξινομήσει τον πίνακα αυτών των βι-

βλίων χρησιμοποιώντας οποιαδήποτε μέθοδο ταξινόμησης θέλετε, με αύξουσα σειρά

ως προς το έτος πρώτης έκδοσης. Αφού η main κάνει τη ταξινόμηση θα πρέπει να

εμφανίσει τα τρία βιβλία με ένα String του στυλ «Βιβλίο: <όνομα-βιβλίου>, Συγγρα-

φέας: <όνομα-συγγραφέα>, Έτος πρώτης έκδοσης: <έτος-πρώτης-έκδοσης>».

 

Εχω κανει τα εξης:

 

Την κλαση ΒοοK

package book;

 

public class Book {

 

private String title;

private String author;

private int firstEdition;

 

public Book(){

title="";

author="";

firstEdition=0;

}

 

public Book(String nTitle,String nAuthor,int nFirstEdition){

title=nTitle;

author=nAuthor;

firstEdition=nFirstEdition;

}

 

public void SetBook(String nTitle,String nAuthor,int nFirstEdition){

title=nTitle;

author=nAuthor;

firstEdition=nFirstEdition;

}

 

public String GetTitle(){

return title;

}

 

public String GetAuthor(){

return author;

}

 

public int GetFirstEdition(){

return firstEdition;

}

 

public void ShowBook(){

System.out.print("Biblio:"+title);

System.out.print(", Siggrafeas:"+author);

System.out.print(", Etos 1hs ekdoshs:"+firstEdition);

System.out.println();

}

}

 

 

Την TestBook

package book;

 

public class TestBook {

 

 

public static void main( String args[] ){

 

 

Book[] a = new Book[6];{

a[0] = new Book("Java ","Tasos ",2007);

a[1] = new Book("Diktia","kostas ",2003);

 

}

 

}

 

και δεν μπορω να κανω τον αλγοριθμο ταξινομησης...

 

Εχω βρει τον bubbleSort

package bubleSort;

 

public class BubbleSort {

// sort the elements of an array with bubble sort

public static void bubbleSort(int b[] )

{

for ( int pass = 1; pass < b.length; pass++ ) // passes

for ( int i = 0; i < b.length - pass; i++ ) // one pass

if ( b[ i ] > b[ i + 1 ] ) // one comparison

swap( b, i, i + 1 ); // one swap

}

 

// swap two elements of an array

public static void swap( int c[], int first, int second )

{ int hold; // temporary holding area for swap

hold = c[ first ];

c[ first ] = c[ second ];

c[ second ] = hold;

}

public static void main( String args[] )

{

 

int a[] = { 102, 65, 14, 28, 10, 32};

 

System.out.println("Data items in original order");

 

for ( int i = 0; i < a.length; i++ )

System.out.print(" " + a[ i ]);

 

bubbleSort( a );

 

System.out.println("\n\nData items in ascending order");

 

for ( int i = 0; i < a.length; i++ )

System.out.print(" " + a[ i ]);

 

System.out.println("\nHave a nice day");

 

}

 

}

 

αλλα δεν μπορω να τον εφαρμοσω πανω στην κλαση book

καμια βοηθεια...

*Δεν ξερω γιατι μου βγαζει με εντονα γραμματα τις 2 σειρες...

**Την ταξινομηση την σκοτωσα λιγο,αν μπορει καποιος ας το αλλαξει..

 

 

-----Προστέθηκε 27/12/2008 στις 10 : 16 : 27-----

 

 

καμια ιδεα ρε παιδια???

Δημοσ.

Η ταξινόμηση φυσαλίδας είναι πάρα πολύ απλή. Το μόνο που έχεις να κάνεις είναι να ελέγχεις κάθε στοιχείο του πίνακα και αν το στοιχείο είναι μεγαλύτερο από το επόμενό του τότε να τα αλλάζεις με μία swap. Αυτό πρέπει να γίνει για όλα τα στοιχεία του πίνακα, δηλαδή για το μέγεθος του πίνακα.

 

Εσύ θα πρέπει να checkάρεις το έτος έκδοσης κάθε βιβλίου και όχι το βιβλίο, δηλαδή:

>if(a[i].getFirstEdition() > a[i+1].getFirstEdition())
   swap(....);

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...