Alfionsort
Δημοσιεύτηκε: Παρ Νοέμ 20, 2009 8:06 pm
Καλησπέρα,
Γράφω αυτό το μήνυμα για να σας ενημερώσω για έναν καινούργιο αλγόριθμο ταξινόμησης. Είτε θέλετε να το πιστεύετε είτε όχι αυτός ο αλγόριθμος φτιάχτηκε από εμένα.
Ο πηγαίος κώδικας μπορεί να βρεθεί στο
http://www.planet-source-code.com/vb/sc ... 7&lngWId=3
Επίσης είχε βγει ένα άρθρο και στην τοπική εφημερίδα του νομού μου αλλά από ότι βλέπω δεν έχει περαστεί ακόμα στην βάση δεδομένων για να σας έδεινα το link για να το διαβάσετε.
Λοιπόν σχετικά με τον αλγόριθμο : είναι ένας αλγόριθμος πολυπλοκότητας
Ο( (Ν / 2 * Ν/2) + (Ν/2) ) . O αλγόριθμος ταξινόμησης μου τον οποίο ονόμασα Alfion sort βασίζεται στην τεχνική διαίρει και βασίλευε και είναι αναδρομικός. Λοιπόν η διαδικασία έχει εώς εξής 1ον) Έχουμε έναν πίνακα ο οποίος έχει μία αρχή και ένα τέλος.
2ον) Αρχίζουμε μία γραμμική αναζήτηση από το 1....Ν στοχείο του πίνακα μας και βρίσκουμε το μεγαλύτερο και το τελευταίο στοιχείο του πίνακα
3ον) Έπειτα αλλάζουμε το μικρότερο στοιχείο με το αρχικό στοιχείο του πίνακα και έπειτα το μεγαλύτερο στοιχείο με το τελευταίο στοιχείο του πίνακα μας ή αντιστρόφως ανάλογα τι έχουμε επιλέξει φθίνουσα ή αύξουσα σειρά.
4ον) Ξανακάνουμε μία αναζήτηση πάλι για να βρούμε πάλι το μικρότερο και το μεγαλύτερο στοιχείο του πίνακα μας όμως αυτή την φορά θα αυξήσουμε την αρχή της αναζήτησης κατά ένα και το τέλος της αναζήτησης κατά 1. Δηλαδή start += 1; end -=1; Με αποτέλεσμα η αναζήτηση να είναι τώρα δύο φορές πιο γρήγορη.
5ον) Επαναλαμβάνουμε πάλι τα ίδια βήματα μέχρι να ταξινομηθεί ο πίνακας.
Σύγγριση με αλγόριθμος πολυπλοκότητας Ο(Ν^2)
Για 10 στοιχεία είναι 10 ^ 2 = 100
Ενώ στον δικό μου φτάνει τα 30 μόνο.
Ενώ στους τετραγωνικόυς έχουμε συνέχεια 10 + 10 + 10 ... + 10 = 100
στον δικό μου έχουμε 10 + 8 + 6 + 4 + 2 = 30.
Αυτά είχα να πω.
Μάνος
Γράφω αυτό το μήνυμα για να σας ενημερώσω για έναν καινούργιο αλγόριθμο ταξινόμησης. Είτε θέλετε να το πιστεύετε είτε όχι αυτός ο αλγόριθμος φτιάχτηκε από εμένα.
Ο πηγαίος κώδικας μπορεί να βρεθεί στο
http://www.planet-source-code.com/vb/sc ... 7&lngWId=3
Επίσης είχε βγει ένα άρθρο και στην τοπική εφημερίδα του νομού μου αλλά από ότι βλέπω δεν έχει περαστεί ακόμα στην βάση δεδομένων για να σας έδεινα το link για να το διαβάσετε.
Λοιπόν σχετικά με τον αλγόριθμο : είναι ένας αλγόριθμος πολυπλοκότητας
Ο( (Ν / 2 * Ν/2) + (Ν/2) ) . O αλγόριθμος ταξινόμησης μου τον οποίο ονόμασα Alfion sort βασίζεται στην τεχνική διαίρει και βασίλευε και είναι αναδρομικός. Λοιπόν η διαδικασία έχει εώς εξής 1ον) Έχουμε έναν πίνακα ο οποίος έχει μία αρχή και ένα τέλος.
2ον) Αρχίζουμε μία γραμμική αναζήτηση από το 1....Ν στοχείο του πίνακα μας και βρίσκουμε το μεγαλύτερο και το τελευταίο στοιχείο του πίνακα
3ον) Έπειτα αλλάζουμε το μικρότερο στοιχείο με το αρχικό στοιχείο του πίνακα και έπειτα το μεγαλύτερο στοιχείο με το τελευταίο στοιχείο του πίνακα μας ή αντιστρόφως ανάλογα τι έχουμε επιλέξει φθίνουσα ή αύξουσα σειρά.
4ον) Ξανακάνουμε μία αναζήτηση πάλι για να βρούμε πάλι το μικρότερο και το μεγαλύτερο στοιχείο του πίνακα μας όμως αυτή την φορά θα αυξήσουμε την αρχή της αναζήτησης κατά ένα και το τέλος της αναζήτησης κατά 1. Δηλαδή start += 1; end -=1; Με αποτέλεσμα η αναζήτηση να είναι τώρα δύο φορές πιο γρήγορη.
5ον) Επαναλαμβάνουμε πάλι τα ίδια βήματα μέχρι να ταξινομηθεί ο πίνακας.
Σύγγριση με αλγόριθμος πολυπλοκότητας Ο(Ν^2)
Για 10 στοιχεία είναι 10 ^ 2 = 100
Ενώ στον δικό μου φτάνει τα 30 μόνο.
Ενώ στους τετραγωνικόυς έχουμε συνέχεια 10 + 10 + 10 ... + 10 = 100
στον δικό μου έχουμε 10 + 8 + 6 + 4 + 2 = 30.
Αυτά είχα να πω.
Μάνος