Proč je 10 před 2 a jak to přirozené řazení opraví
Prosté abecední řazení porovnává první znak každé položky, pak druhý a tak dál. První znak u „10“ je 1 a 1 je před 2, takže „10“ se seřadí před „2“. U textu je takové pořadí správné, u čísel špatné. Přirozené řazení bere každou skupinu číslic jako jedno celé číslo, takže 2 je před 10. Doplnění čísel nulami, například 02 a 10, stejný problém vyřeší přímo v názvech.
Řazení řádkůSeznam je v nesprávném pořadíVyzkoušet zdarmaProč počítač řadí takto
Prosté řazení porovnává text po jednotlivých pozicích zleva podle kódů znaků nebo podle řazení daného jazyka. Zastaví se u prvního rozdílu. Pro slova to funguje: „jablko“ je před „banán“, protože se liší první písmena.
U čísel to selhává. Vezměme tři názvy souborů: file-2, file-9 a file-10. U poslední dvojice se porovnání dostane na šestou pozici, kde jsou znaky 1 a 9. Jednička je menší, takže file-10 jde první. Prosté pořadí je file-10, file-2, file-9. Pro písmena je to správně, pro člověka, který čte počty, je to špatně.
Přirozené řazení
Přirozené řazení, někdy nazývané číselné nebo lidské, rozdělí každý text na skupiny číslic a skupiny ostatních znaků. Skupiny číslic porovnává podle jejich hodnoty a ostatní znaky jako text. Takže 2 je před 10 a file-2 je před file-10. Mnoho správců souborů řadí podobným způsobem jako výchozí, proto složka s očíslovanými fotkami v nich obvykle vypadá správně.
Seřaďte seznam ve fixmintu
- Vložte seznam do nástroje pro řazení, jednu položku na řádek.
- V části Pořadí zvolte Čísla místo A→Z.
| Prosté A→Z | Čísla |
|---|---|
| item1, item10, item2 | item1, item2, item10 |
Pořadí Čísla čte číslice jako celá čísla. Odstranění duplicitních řádků nabízí stejné pořadí Čísla. Nejprve odstraní opakování a pak seřadí, takže výsledek je jedinečný a v číselném pořadí.
Doplnění nulami: druhé řešení
Když soubory pojmenováváte sami, dejte každému číslu stejnou šířku: 01, 02 a tak dál až 10, nebo 001 až 100. Prosté řazení pak dá správné pořadí všude, včetně programů bez přirozeného řazení. Doplnění nulami udrží pořadí i ve chvíli, kdy seznam opustí váš počítač, protože pořadí nesou samotné názvy souborů. Funguje to proto, že stejná šířka způsobí, že porovnání znak po znaku odpovídá číselnému pořadí. Šířka musí stačit pro největší číslo. Trojmístná šířka pokrývá až 999, takže soubor 1000 by se seřadil mezi 100 a 101 a pořadí by se rozbilo. Když seznam přeroste svou šířku, doplňte všechna čísla na větší šířku.
Použijte to u nových souborů a stávající přejmenujte dávkově přidáním nul.
Kde se prosté řazení projeví
Očíslované názvy jsou všude: fotky exportované jako IMG_1 až IMG_120, kapitoly pojmenované Kapitola 1 až Kapitola 30, seznamy skladeb, čísla faktur nebo verze softwaru. U každého z nich může po prostém řazení něco vypadat špatně, protože o pozici rozhoduje první číslice. Kapitola 10 skončí vedle Kapitoly 1 a Kapitola 2 se objeví téměř na konci.
Štítky s písmeny fungují stejně. Část 2a, Část 2b a Část 10 se v přirozeném řazení seřadí v tomto pořadí, protože čísla se porovnávají jako první a písmena rozhodují jen uvnitř stejného čísla. Prosté řazení dá Část 10 před Část 2a.
U dat buďte opatrní. V přirozeném řazení se data se dnem na začátku, například 4/11/2026 a 12/01/2026, porovnávají nejdřív podle dne, takže 4/11 je před 12/01, i když 12. ledna je v roce dříve. Data zapsaná od roku, například 2026-11-04, se řadí správně jako prostý text, takže tento formát použijte, když má seznam být seřazen podle data.
Výsledek po seřazení zkontrolujte
Zkontrolujte hranice, kde prosté řazení nejčastěji selhává: přechod z 9 na 10 a ze 99 na 100. Při řazení Čísla jsou tato místa ve správném pořadí. Pokud seznam míchá čísla s doplněnými a nedoplněnými nulami, podívejte se nejdřív na tato místa, protože se tam smíchání ukáže.
Pořadí volte záměrně
Použijte A až Z pro slova, jména a názvy, kde nesou význam písmena. Použijte Čísla pro seznamy, jejichž položky začínají počtem, stránkou, kapitolou nebo verzí. Délku použijte, když mají být nejdřív nejkratší položky. Zamíchat slouží k náhodnému pořadí a při každém stisknutí dá jiný výsledek. Pravidla prostého abecedního řazení najdete v článku jak seřadit seznam abecedně.
Okrajové případy
- Smíšené řádky. Přirozené řazení porovnává celé řádky zleva. V seznamu, který začíná jménem, rozhoduje o pořadí nejdřív jméno, takže „Bob 1“ je až za „Ada 10“, i když 1 je menší než 10.
- Smíšené šířky. Doplněná a nedoplněná čísla v jednom seznamu se mohou v přirozeném řazení vyhodnotit jako stejná, takže jejich pořadí pak závisí na vstupu. Zvolte pro každý seznam jednu šířku.
- Desetinná čísla. Přirozené řazení čte 1.9 jako 1 a potom 9, a 1.10 jako 1 a potom 10, takže 1.9 je první. To vyhovuje číslům verzí, kde je 1.10 novější vydání. U desetinných hodnot, jako jsou ceny, je 1.10 menší než 1.9, takže přirozené pořadí je špatné. Doplňte desetinná místa na stejný počet: 1.10 a 1.90.
- Velká a malá písmena. Řazení bere Jablko a jablko jako stejné, takže se seřadí spolu v pořadí, v jakém byly vloženy. Rozlišování velkých a malých písmen to změní.
Přeloženo z Anglický originál s pomocí AI.
Komentáře
Zatím žádné komentáře. Buďte první.


