Έτσι έχουμε όλα τα πλεονεκτήματα που παρουσιάζουν οι πίνακες σε ότι αφορά τις ταξινομήσεις αφού για αυτές γνωρίζουμε αρκετές και είναι εύκολοεφαρμόσιμες. Στην συνέχεια θα δούμε ένα παράδειγμα με εφαρμογή φθίνουσας ταξινόμησης σε Vector με την βοήθεια πίνακα. Πιο αναλυτικά:
Ο παρακάτω κώδικας υλοποιεί την ταξινόμηση σε τρεις φάσεις.
1. Μεταφέρει τα στοιχεία του vector σε πίνακα
2. Τα ταξινομεί
3. Τα επανατοποθετεί στον vector
Μέθοδος φθίνουσας ταξινόμησης Vector vec_inorder
public Vector<A> reorder (Vector <A> vec_inorder){
A [ ] vec_array = new A[vec_inorder.size()]; // δημιουργία πίνακα στο μέγεθος του vector
Iterator point=vec_inorder.iterator(); // ορισμός δείκτη
int j=0,i=0; //αρχικοποίηση τιμών
while(point.hasNext() ){ // για όσο υπάρχει επόμενο στοιχείο στον Vector
vec_array[i++]= (A)point.next(); //πάρε το το στοιχείο που δείχνει ο δείκτης και βάλτω στον πίνακα
}
// ταξινόμηση πίνακα σε φθίνουσα σειρά. Μην ξεχνάμε ότι ο πίνακας περιέχει αντικείμενα τύπου Α
for(i=1; i<vec_array.length; i++) {
for(j=0; j<i ; j++) {
// η μέθοδος getdedomena() καλεί τα δεδομένα που σύμφωνα με αυτά θα γίνει η ταξινόμηση
if (vec_array[j].getdedomena() >vec_array[i ].getdedomena() ){
A temp= vec_array[i];
vec_array[i]= vec_array[j];
vec_array[j]=temp;
}
}
}
vec_inorder.clear(); //καθαρισμός vector από παλαιότερες τιμές
for(i=0 ; i<vec_array.length ; i++){
vec_inorder.add(vec_array[i]); //τοποθέτηση των αντικειμένων του πίνακα στον vector
}
return vec_inorder; // επιστροφή του vector για περαιτέρω χρήση.
Δημοσίευση σχολίου