Miért kerül a 10 a 2 elé, és hogyan javítja ezt a természetes rendezés?
A sima ábécé szerinti rendezés minden elem első karakterét hasonlítja össze, aztán a másodikat, és így tovább. A „10” első karaktere az 1, és az 1 megelőzi a 2-t, ezért a „10” a „2” elé kerül. Szövegnél ez a sorrend helyes, számoknál viszont hibás. A természetes rendezés a számjegyek összefüggő sorozatát egyetlen egész számként olvassa, így a 2 kerül a 10 elé. Ha a számokat nullákkal egészíted ki, például 02-re és 10-re, ugyanezt a problémát magában a fájlnevekben oldhatod meg.
Sorok rendezéseA lista nincs sorrendbenPróbáld ki ingyenMiért így dolgozik a számítógép
A sima rendezés a szöveget pozíciónként, balról jobbra hasonlítja össze, karakterkódok vagy a nyelv egyeztetési sorrendje alapján. Az első eltérésnél megáll. Szavaknál ez jó: az „alma” a „banán” elé kerül, mert az első betűk különböznek.
Számoknál elbukik. Vegyük három fájlnevet: file-2, file-9 és file-10. Az utolsó két név összehasonlításakor a hatodik pozícióig jutunk, ahol az 1 és a 9 áll egymással szemben. Az 1 kisebb, így a file-10 kerül előre. A sima sorrend tehát: file-10, file-2, file-9. Betűknél ez helyes, de aki számokat olvas, annak értelmetlen.
Természetes rendezés
A természetes rendezést más néven számszerinti vagy emberi rendezésnek is nevezik. Minden szöveget számjegy-sorozatokra és egyéb karaktersorozatokra bont. A számjegy-sorozatokat értékük szerint hasonlítja össze, a többit szövegként. Így a 2 a 10 elé kerül, a file-2 pedig a file-10 elé. Sok fájlkezelő alapértelmezésben ilyen rendezést használ, ezért a számozott fotók mappája ott általában jól néz ki.
Listák rendezése a fixmintben
- Illeszd be a listát a rendezőeszközbe, soronként egy elemmel.
- Az Sorrend résznél az A→Z helyett válaszd a Számok lehetőséget.
| Sima A→Z | Számok |
|---|---|
| item1, item10, item2 | item1, item2, item10 |
A Számok sorrend a számjegyeket egész számokként olvassa. A duplikátumok törlése eszköz ugyanezt a Számok sorrendet kínálja. Először eltávolítja az ismétléseket, utána rendez, így a kimenet egyedi és számsorrendben van.
Nullával való kitöltés: a másik megoldás
Ha magad nevezed el a fájlokat, minden számot azonos szélességűre írj: 01, 02 és így tovább 10-ig, vagy 001-től 100-ig. Ekkor a sima rendezés mindenhol helyes sorrendet ad, még olyan programokban is, amelyek nem tudnak természetes rendezést. A kitöltés akkor is megőrzi a sorrendet, ha a lista kikerül a gépedről, mert a fájlnevek maguk hordozzák a sorrendet. A kitöltés azért működik, mert az azonos szélesség miatt a karakterenkénti összehasonlítás egybeesik a számszerinti sorrenddel. A szélességnek a legnagyobb számhoz kell illeszkednie. A háromjegyű séma 999-ig működik, így az 1000 nevű fájl a 100 és a 101 közé kerülne, és felborítaná a sorrendet. Ha a lista túlnő a szélességen, minden számot a szélesebb formára egészíts ki.
Új fájloknál használd ezt, a meglévőket pedig kötegelten nevezd át a nullák hozzáadásával.
Hol jelenik meg a sima rendezés hibája
Számozott nevek mindenhol előfordulnak: IMG_1-től IMG_120-ig exportált fotók, 1. fejezettől 30. fejezetig tartó nevek, számok listája, számlaszámok és szoftververziók. Mindegyiknél elrontja a sorrendet a sima rendezés, mert az első számjegy dönti el a helyet. A 10. fejezet az 1. fejezet mellé kerül, a 2. fejezet pedig a lista végére.
Betűket is tartalmazó címkéknél ugyanez a helyzet. A 2a. rész, a 2b. rész és a 10. rész természetes rendezésnél ebben a sorrendben áll, mert a számokat először egész számként hasonlítja össze, a betűk csak azonos szám esetén döntenek. Sima rendezésnél a 10. rész a 2a. rész elé kerül.
A dátumoknál figyelni kell. Természetes rendezésnél a nap szerint kezdődő dátumok, mint a 4/11/2026 és a 12/01/2026, napjuk alapján hasonlítódnak össze, így a 4/11 a 12/01 elé kerül, pedig a január 12. év közben korábbi. Az évvel kezdődő dátumok, mint a 2026-11-04, szövegként is helyesen rendeződnek, ezért ha a listát dátum szerint kell rendezni, ezt a formátumot használd.
Ellenőrizd az eredményt rendezés után
Nézd meg a határokat, ahol a sima rendezés a leggyakrabban téved: a 9-ről 10-re és a 99-ről 100-ra való átmenetet. Számsorrendű rendezésnél ezek a pontok helyes sorrendben állnak. Ha a listában kitöltött és nem kitöltött számok keverednek, ezeken a pontokon kezdj el nézelődni, mert a keveredés itt látszik meg.
Válaszd a sorrendet szándékosan
Szavakhoz, nevekhez és címekhez használd az A-tól Z-ig sorrendet, ahol a betűk hordozzák a jelentést. A Számok sorrendet olyan listákhoz válaszd, amelyek elemei egy darabszámmal, oldalszámmal, fejezetszámmal vagy verziószámmal kezdődnek. A hossz szerinti sorrendet akkor használd, ha a legrövidebb elemek kerüljenek előre. A Keverés véletlenszerű sorrendet ad, és minden megnyomáskor más eredményt hoz. Az ábécés sorrend szabályaihoz lásd: hogyan rendezz ábécé szerint egy listát.
Szélsőséges esetek
- Vegyes sorok. A természetes rendezés a teljes sorokat balról jobbra hasonlítja össze. Olyan listánál, amely névvel kezdődik, a név dönti el először a sorrendet, ezért az „Bob 1” a „Ada 10” után kerül, pedig az 1 kisebb, mint a 10.
- Vegyes szélesség. Ha egy listában kitöltött és nem kitöltött számok vannak, természetes rendezésnél egyenlőnek tűnhetnek, így a sorrend a bemenettől függ. Minden listához válassz egy szélességet.
- Tizedes törtek. A természetes rendezés az 1,9-et 1-ként, majd 9-ként, az 1,10-et pedig 1-ként, majd 10-ként olvassa, ezért az 1,9 kerül előre. Verziószámoknál ez jó, mert az 1.10 a későbbi kiadás. Árak típusú tizedes értékeknél viszont az 1,10 kisebb, mint az 1,9, így a természetes sorrend hibás. Egyenlő számú tizedesjegyre egészítsd ki őket: 1,10 és 1,90.
- Kis- és nagybetűk. A rendezés alapértelmezésben az Apple és az apple szavakat azonosnak tekinti, így azok a beillesztés sorrendjében kerülnek egymás mellé. A kis- és nagybetűre érzékeny rendezés ezen változtat.
A Angol eredeti alapján, MI segítségével fordítva.
Hozzászólások
Még nincs hozzászólás. Legyél te az első.


