Αλφαβητική Ταξινόμηση Γραμμών
Επικολλήστε μια λίστα — ταξινομείται ζωντανά καθώς πληκτρολογείτε ή αλλάζετε μια επιλογή. Τίποτα δεν φεύγει από τη συσκευή σας.
Ταξινόμηση που πραγματικά κατανοεί τη γλώσσα
Μια αφελής ταξινόμηση συγκρίνει το κείμενο χαρακτήρα προς χαρακτήρα
χρησιμοποιώντας ωμούς κωδικούς Unicode — γι' αυτό μια απλή
.sort() της JavaScript βάζει τα κεφαλαία γράμματα πριν
τα πεζά (τα κεφαλαία έχουν μικρότερους κωδικούς) και σπρώχνει κάθε
τονισμένη λέξη στο τέλος της λίστας. Αυτό το εργαλείο ταξινομεί με
τον collator του προγράμματος περιήγησης, ρυθμισμένο στα ελληνικά,
οπότε οι συγκρίσεις ακολουθούν πραγματική αλφαβητική σειρά: τα
πεζά/κεφαλαία αγνοούνται από προεπιλογή, τα τονισμένα γράμματα
κάθονται δίπλα στα αντίστοιχά τους άτονα, και οι ακολουθίες
ψηφίων μέσα σε μια γραμμή συγκρίνονται ως αριθμητική τιμή αντί
χαρακτήρα προς χαρακτήρα — έτσι το «Αντικείμενο2» τοποθετείται
σωστά πριν το «Αντικείμενο10».
Εκτός από Α→Ω και Ω→Α, μπορείτε να ταξινομήσετε κατά μήκος (συντομότερη γραμμή πρώτη) — χρήσιμο για να σαρώσετε μια λίστα από την πιο απλή στην πιο αναλυτική καταχώριση — ή να την ανακατέψετε με φρέσκια τυχαία σειρά κάθε φορά. Αν η λίστα σας έχει επαναλαμβανόμενες καταχωρίσεις αντί για καταχωρίσεις που χρειάζονται ταξινόμηση, η αφαίρεση διπλότυπων γραμμών είναι το κατάλληλο εργαλείο γι' αυτή τη δουλειά.
Παράδειγμα
Επικολλήστε αυτή τη λίστα: Πορτοκάλι, μήλο, Άνανας, βατόμουρο,
ελιά (μία ανά γραμμή, με ανάμεικτη κεφαλαιοποίηση και έναν
τονισμένο όρο). Με τις προεπιλεγμένες επιλογές — χωρίς διάκριση
πεζών-κεφαλαίων, χωρίς κενές γραμμές — η Α→Ω την ταξινομεί σε
Άνανας, βατόμουρο, ελιά, μήλο, Πορτοκάλι: 5 γραμμές,
αλφαβητικά, ανεξάρτητα από κεφαλαία ή τόνο. Και για μια αριθμημένη
λίστα όπως Αντικείμενο2, Αντικείμενο10, Αντικείμενο1, η
Α→Ω επιστρέφει σωστά Αντικείμενο1, Αντικείμενο2,
Αντικείμενο10 — όχι το «Αντικείμενο1, Αντικείμενο10,
Αντικείμενο2» που θα έδινε μια απλή ταξινόμηση χαρακτήρα προς
χαρακτήρα.
Συχνές ερωτήσεις
Πώς αντιμετωπίζει η ταξινόμηση τα τονισμένα γράμματα;
Χρησιμοποιεί τη σύγκριση με βάση τοπικές ρυθμίσεις του προγράμματος περιήγησης (το localeCompare της JavaScript με ελληνική γλώσσα) αντί για ωμούς κωδικούς χαρακτήρων. Η ταξινόμηση με ωμό code point βάζει κάθε τονισμένο γράμμα εκτός θέσης λόγω του πώς είναι αριθμημένο το Unicode, κάτι λανθασμένο για αλφαβητική σειρά. Η σύγκριση με τοπικές ρυθμίσεις τοποθετεί το «ά» δίπλα στο «α» και το «Ά» στη σωστή του θέση, όπως θα έκανε ένα λεξικό.
Γιατί το «2» ταξινομείται πριν το «10» αντί μετά;
Επειδή η ταξινόμηση αναγνωρίζει αριθμούς: εντοπίζει ακολουθίες ψηφίων μέσα σε μια γραμμή και τις συγκρίνει ως αριθμητική τιμή, όχι χαρακτήρα προς χαρακτήρα. Μια απλή ταξινόμηση συμβολοσειρών θα έβαζε το «Αντικείμενο10» πριν το «Αντικείμενο2» (αφού το «1» < «2» ως χαρακτήρας), κάτι που σχεδόν ποτέ δεν είναι αυτό που θέλετε από μια αριθμημένη λίστα.
Η «Τυχαία σειρά» είναι πράγματι τυχαία, ή επαναλαμβάνει ένα μοτίβο;
Είναι μια φρέσκια ανακάτεμα Fisher-Yates κάθε φορά που το εργαλείο επανυπολογίζει — σε κάθε πάτημα πλήκτρου, κάθε αλλαγή επιλογής και σε κάθε φόρτωση σελίδας. Δεν υπάρχει seed ούτε μνήμη προηγούμενων ανακατεμάτων, οπότε διαδοχικά αποτελέσματα είναι ανεξάρτητα και σπάνια θα δείτε την ίδια σειρά δύο φορές.
Τι αλλάζει ακριβώς η επιλογή χωρίς διάκριση πεζών-κεφαλαίων;
Είναι ενεργή από προεπιλογή και επηρεάζει μόνο τη ΣΥΓΚΡΙΣΗ, όχι το κείμενο: το «Μήλο» και το «μήλο» θεωρούνται ίσα κατά την απόφαση σειράς, αλλά κάθε γραμμή διατηρεί την αρχική της κεφαλαιοποίηση στο αποτέλεσμα. Απενεργοποιήστε την αν θέλετε συγκεκριμένα τα κεφαλαία γράμματα να ταξινομούνται πριν τα πεζά (η παραδοσιακή, με διάκριση πεζών-κεφαλαίων σειρά).
Τι κάνει η επιλογή «Κατά μήκος»;
Ταξινομεί τις γραμμές με βάση τον αριθμό χαρακτήρων τους, από τη συντομότερη στη μακρύτερη — χρήσιμο για να σαρώσετε μια λίστα από την πιο απλή στην πιο αναλυτική καταχώριση, χωρίς να ενδιαφέρει η αλφαβητική σειρά.