Rendszeres statisztikák keresése

Rendszeres statisztikák keresése

Az n elemekkel ellátott készlet i-edik rendelési statisztikáját i-ediknek nevezzük a készlet elemének növekvő sorrendjében.

Tehát a legkisebb a halmaz az első ordinal statisztika, és a maximális az n-edik ordinal statisztika. A középiskola (angol középiskola) informálisan a készlet közepét jelenti. Ha n páratlan, akkor a medián egyedülálló, és indexe (a megfelelő ordinal statisztika indexe) i = (n + 1) / 2; Ha n egyenletes, akkor a mediánok kettő: i = n / 2 és i = n / 2 + 1.

Formálisan az ordinális statisztikák keresésének feladata a következő:

Tekintettel: a (különböző) számokból álló készlet és a szám

Meg kell találni: egy elemet, pontosabban a készlet más elemeit

A feladat megoldható egy óra alatt. Ehhez elegendő az elemek növekvő sorrendbe rendezése, majd az i. De vannak algoritmusok képesek megoldani ezt a problémát időben átlagosan és még a legrosszabb esetben is.

Eddig nem ismert, hogy hány összehasonlításra van szükség a medián megtalálásához. Az alsó kötést, amely 2n-hez hasonlít, Bent és John találta meg, a felső határ pedig 3n, összehasonlítva Shyonhag, Paterson és Pippenger. Dor és Zwick javított mindkét határt; felső határuk valamivel kisebb, mint 2.95n, és az alsó valamivel nagyobb, mint 2n.

Az algoritmus a minimális és a maximális megállapításhoz

Külön is, a set (tömb) minimális és maximum (első és n. Rendelési statisztikája) megtalálható az egyes összehasonlítással. Gyakorlati problémák esetén gyakran szükséges egyidejűleg megtalálni mind a minimumot, mind a maximumot. egyidejű kereséssel az összehasonlítások számát összehasonlításra lehet csökkenteni. Ehhez két elemet kell a készletből venni, és összehasonlítani őket egymással. Ezután a nagyobb elemet összehasonlítjuk az aktuális maximummal, és kevesebbel - az aktuális minimumnál. Így 1 összehasonlítás mentésre kerül (3 összehasonlítás helyett 4).

Az ilyen optimalizálás olyan esetekben alkalmazható, amikor az A készlet elemeinek összehasonlítása sok időt vesz igénybe. Például ha szöveget vagy grafikát hasonlít össze.

Az algoritmus keresés lineárisan átlagos idő alatt

Az algoritmus alapja az "osztódás és meghódítás" elve, és úgy működik, mint egy gyors rendezés. Annak érdekében, hogy minden lehetséges bemeneti adat rövid munkaidőt biztosítson, az algoritmus bevezeti a randomizációt. Az algoritmus javasolta Hoare-t

Az ötlet az, hogy az egész tömböt két részre osztják úgy, hogy az első rész minden eleme ne legyen nagyobb, mint bármelyik második rész. További keresés csak az egyik részen folytatható.

A függvény a tömb egy részének elválasztását a p-től a q-es elemig két kisebb részre teszi.

Funkció Ugyanaz, de véletlenszerűvé teszi a dol-t.

Az A tömb k-edik statisztikáit a függvény végzi

Az algoritmus elemzése

A legjobb esetben (az egyenlő részekre osztás feltételei mellett) a keresési időt az alábbi egyenlet írja le:

Az átlagos idő is ott van, és a véletlenszerűség miatt a működési sebesség tetszőleges bemeneten közel áll az átlaghoz. Ha a partíció nincs rosszul választva, a legrosszabb esetben a komplexitás lesz

Lineáris időkeresési algoritmus (BFPRT algoritmus)

A feltalálók után nevezték el: Manual B lum, Robert W. F loyd, Vaughan R. Patt, Ronald L. R ivest és Robert Endre T arjan. Az angol nyelvtudás, mint a median-of-medians algoritmus

Az algoritmus az előzőhöz hasonlóan működik, de garantálja a megfelelő partícionálást, és ezáltal a legrosszabb esetben O (n).

A k-es ordinal statisztika keresési algoritmusa a következő lépéseket hajtja végre:

  1. Ha a bemeneti tömb csak egy elemet tartalmaz, akkor küldje vissza ezt az elemet és kilép.
  2. A tömb minden eleme öt elemből álló csoportokba és egy csoportba van osztva az elemekkel (üres lehet).
  3. Minden egyes csoportot a felvételi módszerrel rendeznek, és minden csoportban kiválasztják a medián értéket.
  4. Az algoritmus rekurzív felszólításával a 3. lépésben talált mediánok mediánja (ha a medián kettő, majd az alsó rész van kiválasztva).
  5. Az eljárás módosított változatának használatával a bemeneti tömb a mediánhoz képest szétválik. Tegyük fel, hogy a szám egynél több, mint az első rész elemeinek száma.
  6. Ha visszaadja az értéket. Ellenkező esetben az algoritmust rekurzívan, az első résznek nevezzük, ha a második esetben (helyettesítjük).

A munka elemzése

Az idő, hogy a tömb minden apró részét és időjét egy barátságos tömbhöz rendeljék, O (n). Az x partíció elemének megválasztása biztosítja, hogy legfeljebb 7n / 10 + 6 elem kerüljön a nagyobb részbe. Következésképpen a munkaidő egyenlete:

Kapcsolódó cikkek