Digitális válogatás
A digitális rendezési algoritmust (radix rendezés) a lyukasztott kártyák rendezésére szolgáló gépekben használták. A karton lyukasztott kártyákban speciális perforator lyukasztott lyukakat. A 80 oszlop mindegyikében 12 téglalap alakú nyílás volt.
Válogató gépek ?? e rámutatott az oszlopot, amely a rendezni kívánt, és ő feküdt ki egy pakli lyukkártya a stack 10 alapján, amely az 0-9 lyukat vágtunk a megadott oszlop.
Hogyan lehet rendezni a többértékű számjegyű lyukasztott kártyák csomagját (az egy oszlopban lévő egységek száma, az előzőben tízes stb.)? Az első dolog, ami eszembe jut, hogy elkezd válogatni a magas rangú. Ennek eredménye 10 halom, amelyek mindegyike a következő lépésben meg kell osztani 10 halom, és így tovább - kapsz nagy számú halom lyukkártya.
Furcsamód, célszerű kezdeni a legkisebb helyi értékű bit, ami bővíti a fedélzet 10 kötegeket, ahol a lyuk van in''mlad-Sém 'oszlopban. Az így kapott 10 halom kell majd hajtogatott egyetlen ebben a sorrendben: .. Először kártya 0, akkor a kártya 1, stb A kapott fedélzet ismét rassortiruem 10 halom, de összhangban a mentesítési tíz, hozzá a kapott verem egy egyszintes stb.; ha a lyukasztott kártyákon "d" értékű számokat rögzítettek, akkor szükség lesz a rendezőgép d időtartamra történő használatára. Az 1. ábrán. A 2.9 ábra bemutatja, hogyan működik ez az algoritmus, amelyet hét háromjegyű számra alkalmaznak.
2.9 ábra - Példa a háromjegyű számjegyek digitális rendezésére
Az ábra a számok kezdeti sorrendjét, valamint a harmadik, második és első számsor szerinti sorba rendezést mutatja (a függőleges nyilak jelzik, hogy melyik számot rendezték).
Fontos, hogy az algoritmus, amellyel ez a fajta válogatott, stabil: az oszlopban ugyanazt a számot tartalmazó kártyáknak ugyanabban a sorrendben kell elhagyniuk a rendező gépet, amelyben azokat benyújtották.
A számítógépekben a digitális rendezést néha több mezőt tartalmazó adatok rendszerezésére használják. Legyen például a dátumok sorrendjének rendezése. Ezt meg lehet tenni bármilyen piszkos-tran sportation algoritmus dátumának összevetésével a következő: össze az évek során, ha ugyanezen - összehasonlítani a hónapban, ha azonos vagy hónap - összehasonlítani a számokat. Ehelyett azonban egyszerűen rendezheti a dátum tömböt háromszor egy robusztus algoritmussal: először napok, majd hónapok, majd évekig.
A digitális rendezési program könnyen írható. Feltételezzük, hogy az A n elemelem minden egyes eleme d számjegyből áll, ahol az 1-es számjegy a legfiatalabb számjegy és a d számjegy a legmagasabb szám.
Listázás 2.10 - Digitális rendezési algoritmus
Ha a számok 1-től k-ig terjedő értékeket vehetnek fel, ahol k nem túl nagy, akkor a nyilvánvaló választás sorszám szerint történik. Az n számoknál a d jelek 0-tól k-1-ig minden átvitel időtartama Q (n + k); Mivel d passes, a digitális rendezési idő Q (d × n + k × d). Abban az esetben, ha d állandó és k = O (n), a digitális rendezés lineáris időben működik.
Digitális rendezés esetén fontos a számrendszer megfelelő bázisának kiválasztása, mivel a szükséges kiegészítő memória mérete és a működési idő függ. Konkrét példa: legyen szükség egy millió 64 bites szám megadására. Abban az esetben, ha tekinteni, mint egy négyjegyű számot bázis-2 16, majd digitálisan válogató ponuzhnobitsya Sun ?? annak négy halad, amikor a használt számlálás-rendezése eljárás A tömb mérete február 16 (amely kicsi, összehasonlítva a méret a rendezett tömbben) . Ez előnyös, de különbözik az összehasonlítástól, ha minden egyes számhoz logonként 20 művelet van. Sajnos a digitális válogatás alapján számítva sort igényel egy másik tömb (akkora, mint a rendezett) tárolására részeredmények, míg a set-Gia összehasonlítás rendezési algoritmusok csinálni nélküle. Ezért, ha menteni kell a memóriát, előfordulhat, hogy a gyors rendezési algoritmus előnyben részesíthető.