Javascript - tömb rendezési funkció, vezető IT

Az alapértelmezett rendezési módszer rendezi a tömb alfabetikus sorrendben, az általa képviselt minden egyes érték a tömb elem egy karakterlánc módszerrel toString ().

Például, válogatás a tömb, amely a számok:

Rendezése a tömböt akarunk, meg kell írni egy speciális funkciót, és adja át a nevet, mint a paraméter a rendezési módszer.

De mielőtt tovább, hogy hozzon létre egy függvényt, nézzük az algoritmus, amely a fajta módszer rendezi a tömböt. Tény, hogy a rendezési algoritmus nagyon egyszerű, és áll az ismételt összehasonlításával két szomszédos elem a tömbben, amely attól függően, az összehasonlítás eredménye átrendeződött (rendezve).

Ezért a speciális funkciót kell 2 paramétereket. És továbbítja az értékeket ezen paraméterek ő sort módszer. azaz paraméterek nem ismertek. És ez nem fontos számunkra, mert A mi feladatunk az, hogy írjon egy algoritmus összehasonlítására Ezen paraméterek értékeinek és kiadása eredményeként az értékeket, amelyeken a fajta módszer határozza meg rendezni a tömb elemeit egy, vagy sem.

Ie rendezési módszer meghatározza átrendezni az elemek, vagy nem attól függően, az eredmény, amely visszaállítja a funkciót. Nézzük meg, mi értékeket kell visszaadnia funkció:

  • Ha a függvény 0, a tömb adatelemek egyenlő;
  • Ha a függvény egy 1 (vagy nagyobb, mint 0), az azt jelenti, hogy az első elem a nagyobb, mint a második tömb;
  • Ha a függvény -1 (vagy kevesebb, mint 0), az azt jelenti, hogy a második elem a tömb nagyobb, mint az első.

Miután létrehozott egy függvény, hanem át kell menni, mint a paraméter a rendezési módszer. Sőt, meg kell továbbítani, csak a neve ennek a funkciónak, megkötése nélkül a idézőjelek nélkül skobochek fordulóban. Ez mind annak a ténynek köszönhető, hogy nem kérünk a fajta módszer hívás ez a funkció most, de egyszerűen, hogy tájékoztassa ezt a módszert, így akkor használják, amikor összehasonlítjuk a tömb elemei, azaz a hogyan kell helyettesíteni a szokásos funkció rendezni a tömböt a funkció adott meg paraméterként.

Például írsz egy függvényt sorszámokat:

Így egy olyan speciális funkció, akkor kap az a fajta módszer rendezni a tömböt a megadott függvény az algoritmust.

Például, egy numerikus tömb rendezési fordított sorrendben:

Igen, tudtam, én elvileg, és nem akar sokat ásni az elvek a gyors rendezés. Csak valamilyen oknál fogva soha nem írt, hogy az első argumentum kisebb, mint a második, ami azonnal megszüntetné a millió kérdést. Bár valószínűleg ez úgy értendő, különben a függvény (N1, N2) (N1-N2) nem lenne értelme)

Nem tudom, hogy ez hogyan viszonyul ez a tömb - 99,23,15,44. Elveszi le a 23 és 13, értéke 1, akkor le például a 23. és 44. visszatér -1, és megérti, hogy szeretnék, például emelkedő sorrendben építeni? Nem tudom, hogy mi lesz az első elem nagyobb, mint a második, vagy kevesebb, mint a második. Itt egy változat láttam (a, b) (vissza-b) típusú, ami azt jelenti, az 1. és rendezési növekvő sorrendben. De azt nem lehet tudni előre, hogy «a» kisebb, mint a «b» és visszatér -1. Vagy sort () «a» mindig kisebb, mint «b» (alapértelmezett)?

Az elv a gyors rendezési algoritmusnak a következő. Első tartóelem van kiválasztva (például, alacsony). Ezt követően, az elemek a bal és jobb oldalán is összehasonlítjuk vele. Ha bármelyik elem a bal fölött a referencia költözött a jobb oldalon. Ugyanazokat az elemeket és lengő jogát, de a művelet végrehajtása fordítva. Ie ha kevesebb, mint a referencia elem, akkor átkerül a bal oldalon. Végül, miután ezek a manipulációk fog fordulni 2 külön tömb. Az első tömb (bal oldalán a hordozóra) kisebb lesz, mint a referencia elemek. Egy második (hivatkozási joga) nagyobb lesz, mint a referencia elemek. Ezután az összes ismétlődnek újra. Ie hozott tömb bal oldalán a referencia elem, és ez történik minden ugyanaz. Ie által meghatározott támasztó elem, és a többi mozgatjuk hozzá képest. Mindezek az intézkedések ismétlődnek rekurzív, amíg a tömb nincs rendezve. Ie még nem darabok maradnak tömbök, amelyek már nem osztódnak. Ezután minden összefügg, és kapsz egy rendezett tömbben.

Nem tudod, hogy az elvet az algoritmus elég határozni azokat a feltételeket, amelyek mellett az egyik elem elmozdul jobbra, a másik balra. Erre a célra, és szükség van egy függvény két paramétert. Ebben meg kell határozni azokat a feltételeket, amelyek mellett egyes elemeit JacaScript fogja mozgatni a jobb (> 1) vagy balra (<1).
Például: