Abecední řazení

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

V různých seznamech, slovnících, encyklopediích apod. je potřeba řadit textové řetězce. K tomu se zpravidla používá abecední řazení, tzn. řazení textů založené na tradičním uspořádání příslušné abecedy. Pořadí písmen v abecedě zpravidla nemá žádný logický význam, jedná se pouze o ustálený zvyk. V různých jazycích se může toto uspořádání lišit, zvláště pro specifické prvky příslušného jazyka (znaky s diakritikou apod.).

Základní princip řazení – postupné porovnávání řazených řetězců po jednotlivých znacích, přičemž o seřazení rozhoduje vždy první nalezený rozdíl, se označuje jako lexikografické řazení.

Abecední řazení se používá ve slovnících, telefonních seznamech a mnoha dalších rozsáhlých souborech dat, neboť umožňuje efektivní hledání: pro vyhledání položky v n-prvkovém uspořádaném seznamu je potřeba pouze logaritmický počet kroků; srovnejte jednoduchost hledání v telefonním seznamu podle jména, podle kterého je seznam seřazen, oproti hledání podle telefonního čísla, při kterém je nutno seznam projít celý položku po položce.

Základní latinka, anglická abeceda, ASCII[editovat | editovat zdroj]

Základní forma latinky (anglická abeceda) obsahuje 26 písmen, která jsou řazena do následujícího pořadí:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Toto řazení se odráží v uspořádání znaků v počítačových znakových kódováních, jako např. ASCII, EBCDIC, Unicode.

Používaná posloupnost znaků je následkem historického vývoje, není pro ni žádný další logický důvod. (Oproti tomu si lze představit např. systém podle fonetických významů hlásek, řadící samohlásky před souhlásky atd.)

Čeština[editovat | editovat zdroj]

Pro češtinu upravuje abecední řazení norma ČSN 97 6030 z roku 1994 (která nahradila starší a složitější ČSN 01 0181 z roku 1977, přičemž aplikovatelnost normy rozšířila i na počítačové řazení). Podle této normy se řadí celá slova (případně skupiny slov), přičemž za slovo se považuje řetězec písmen, číslic, znaku apostrof a spojovník či nezlomitelná mezera (s výjimkou situace, kdy jsou tyto dva znaky na začátku či konci řetězce); počet mezer oddělujících jednotlivá slova není podstatný. Základem řazení je opět abeceda, tentokrát i s českými znaky. Při řazení se však nejprve nepřihlíží ke všem diakritickým znaménkům, v prvním průchodu se bere ohled jen na následující standardizovanou abecedu:

A B C Č D E F G H Ch I J K L M N O P Q R Ř S Š T U V W X Y Z Ž

Ostatní znaky s diakritikou (např. Ď, Ň, Ť) se v této první fázi řadí stejně jako verze bez diakritiky (D, N, T). Pouze pokud aplikací této tzv. primární řadicí schopnosti nelze rozhodnout mezi řazením několika slov, bere se ohled na ostatní diakritická znaménka. Sekundární řadicí platnost určuje vzájemné pořadí jinak stejných slov lišících se pouze diakritickými znaménky: Nejprve se řadí znaky bez diakritických znamének, po nich následují znaky s čárkou, po nich znaky s háčkem (kromě případů, kdy má primární řadicí platnost), po nich znaky s kroužkem.

Obecné pravidlo pro sekundární řadicí platnost, umožňující řadit i znaky z jiných abeced, je definováno pomocí tří kroků: nejprve se porovnává umístění diakritického znaménka vzhledem k znaku; to určuje následující pořadí:

  1. bez diakritických znamének,
  2. diakritika nad znakem,
  3. diakritika pod znakem,
  4. diakritika za znakem (vpravo od znaku),
  5. diakritika před znakem (vlevo od znaku),
  6. diakritika uvnitř znaku či přes znak.

Pokud pomocí tohoto pravidla nelze rozhodnout, ve druhém kroku se jednoduché diakritické znaménko (např. čárka) řadí před dvojitá diakritická znaménka (např. přehláska) a ta se řadí před trojitá diakritická znaménka (tři tečky). Pokud ani toto pravidlo nerozhodne, definuje norma pořadí jednotlivých druhů diakritických znamének:

  1. tečka (resp. přehláska či tři tečky),
  2. čárka,
  3. vodorovná čárka (makron),
  4. svislá čárka,
  5. čárka zleva dole doprava nahoru (resp. dvě čárky),
  6. čárka zleva nahoře doprava dolů (resp. dvojitá zpětná čárka),
  7. stříška (circumflex),
  8. háček,
  9. tilda (vlnovka),
  10. oblouček,
  11. obrácený oblouček,
  12. cedilla,
  13. ocásek,
  14. kroužek.

Pokud se v textu používají indexy či exponenty, přihlíží se k nim jen sekundárně, obdobně jako by se jednalo o diakritická znaménka před či za písmenem.

Při řazení se vůbec nebere ohled na malá a velká písmena (slova lišící se jen velikostí písmen mohou být v libovolném vzájemném pořadí), což je zjednodušení oproti předchozí normě (která malá písmena řadila před velká). Číslice se řadí za všemi písmeny, přičemž se řadí podle své číselné hodnoty, apostrof je ještě za číslicemi. Spojovník a nezlomitelná mezera se řadí před celou abecedu.

Příklad řazení[editovat | editovat zdroj]

  1. padá
  2. sál (s > p)
  3. sála (delší než předchůdce)
  4. sálá (á > a, se sekundární řadicí platností)
  5. säla (ä > á, se sekundární řadicí platností)
  6. satira (t > l)
  7. si lehá (i > a)
  8. si nese (n > l)
  9. sílí (si je kratší než sílí)
  10. šála (š > s s primární řadící platností)
  11. šat (t > l)
  12. ta (t > š)

Neabecední písma[editovat | editovat zdroj]

U znakových písem (např. čínské znaky či japonské kandži) nemůže existovat zapamatovatelné uspořádání všech znaků písma. Řazení proto funguje na mírně odlišném principu: u znaku se určí základní složka a počet tahů znaku. Znaky jsou primárně setříděny podle kořene, v rámci jednoho kořene se řadí vzestupně podle počtu tahů. Např. znak 媽 se řadí pod svůj kořen 女 a v něm mezi třináctitahové znaky.

Tato metoda je evidentně složitější než abecední řazení latinky, proto se jako alternativní metoda často používá také ryze abecední řazení podle výslovnosti příslušného znaku: např. slovo Tokio zapsané v kanji (東京) se dá řadit podle posloupnosti abecedních znaků popisujících jeho výslovnost to-u-ki-jo-u (とうきょう). Pro použití této alternativy je však potřeba znát výslovnost znaků, což použitelnost této metody omezuje.

Praktické problémy řazení[editovat | editovat zdroj]

Při používání počítačů se abecední řazení objevuje v mnoha úlohách, řazení patří k jedné ze základních schopností databází. S řazením však je (a hlavně v minulosti bylo) spojeno mnoho praktických problémů. Zvláště starší programy nejsou schopny dodržovat jednotlivé národní zvyklosti a normy a jsou schopny řadit pouze anglické texty, resp. texty řadí přímo podle hodnot znaků v příslušném kódování (ordinální řazení). Pro české texty to znamená hlavně ignorování zvláštního postavení českého písmene Ch, které je v takovém případě řazeno ke znaku C, a řazení znaků s diakritikou až za všechna ostatní písmena abecedy a navíc v přeházeném pořadí.

V moderních programech je již většina národních zvyklostí (a požadavků příslušných norem) respektována, ovšem pro správné chování programu je nutno v konfiguraci nastavit správný jazyk a národní prostředí.

Externí odkazy[editovat | editovat zdroj]

Související články[editovat | editovat zdroj]