Tömb újraírása, ha van benne "rögzített" elem

Adott egy tömb, amiben van egy olyan elem, ami köré kéne rendezni a többi adatot. De hogyan?

pl.: array ('1','2','3','[5]','7','8','9')
A jelzett érték köré kéne rendezni így:
array('2','3','4','[5]','6','7','8')

Tovább bonyolítás: mi van, ha tetszőleges mennyiségű rögzített érték van?

Hozzászólások

Szerintem ezt a kerdest gondold ujra.
Szivesen segitenek ha ertenem mit akarsz :)

------------------
- The Question is: What is mahna mahna?!

- No! The question is: Who Cares!

Sorbarendezéssel pl
a jelzett értéket addig mozgatod a rendezet táblába míg a helyére nem kerül.
ciklusba megnezed a rögzitett ertek hosszát és a vegeig megy a ciklus, a ciklusmagba ellenorzod hogy jo helyen van-e és ha igen kilepsz a ciklusmagbol.

pch

n rögzített érték esetén kell két változó: az egyik a következő rögzített érték pozícióját tárolja el (kov) a másik a tömbben a jelenlegi pozíciót (cur). Kell egy ciklus, ami addig fut, amíg a cur változó (ami lehet a ciklusváltozó) értéke kisebb, mint az elemszám. A rögzített értékek tárolását nem tudom, hogyan oldod meg, de legyen egy tömb, ami eltárolja az elemszámukat. A ciklus első lépésben megkeresi a következő rögzített elemet (addig megy a rögzített elemek indexeit tartalmazó tömbben, amíg nem talál egy nagyobbat, mint a cur; ha egyenlő vele a cur, akkor ugorja a ciklust). Ha megvan, akkor a cur-hoz képest kiszámol egy relatív távolságot, és ahhoz képest adja meg a következő elemeket (itt több féle módszer elképzelhető; lehet csak simán egyesével léptetni, de kiszámolhatod, hogy mennyi a távolsága a tömbben, és mennyi az egész számok halmazán, és ehhez képest növelgeted/csökkentgeted), egészen addig, amíg a következő rögzített értékhez nem ér. Ha megvan az utolsó rögzített érték, akkor a kov -1 értéket kap, és a tomb[cur] csak eggyel meg kell növelni (vagy éppen csökkenteni).

---------
"Ha igazat mondasz azt végig unják, ha feldíszíted azt jól meg dugják"
szerény blogom -- új címen!