Hirdetés
- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- Lalikiraly: Kinek milyen setupja van?
- Graphics: Telefonvásárlási kálváriám....avagy clickbait cím: Horror a hardveraprón
- Luck Dragon: Asszociációs játék. :)
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- bambano: Bambanő háza tája
- Elektromos rásegítésű kerékpárok
-
LOGOUT

Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
pmonitor
#15582
üzenetére
Még régebben írtam egy rövid függvényt, ami kiírja a N szám permutációit rendezett formában. Most sehol sem találom, de emlékeim alapján megpróbáltam újra lekódolni C-ben:
int a[50];
int n=5;
int i, j, temp;
// az 1 2 3 ... n sorozatbol indulunk ki
for (i=0; i<n; i++)
a[i] = i+1;
for (;;)
{
// kiirjuk az aktualis permutaciot
for (i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
// megkeressuk, hol kezdodik az utolso monoton csokkeno reszsorozat
for (i=n-2; i>=0 && a[i]>a[i+1]; i--);
// ha a teljes sorozat monoton csokkeno, akkor vegeztunk
if (i < 0)
break;
// a csokkeno reszsorozat elotti elemet ki kell cserelnunk a reszsorozatban nagysag szerint rakovetkezovel
for (j=n-1; a[j]<a[i]; j--);
temp=a[i]; a[i]=a[j]; a[j]=temp;
// tovabbra is monoton csokkeno a reszsorozatunk, forditsuk meg, hogy monoton novekedo legyen
for (j=i+1; j<n+i-j; j++)
{
temp=a[j]; a[j]=a[n+i-j]; a[n+i-j]=temp;
}
}Nem teszteltem a sebességét, nem állítom, hogy ez a létező leggyorsabb módszer, de viszonylag rövid és egyszerű. Egyébként most, hogy jobban megnézem, ez majdnem az a módszer, mint amiben a quicksort van. Az igazat megvallva soha nem értettem, hogy miért kell itt meghívni egy quicksortot, hiszen amikor ide érünk, akkor a sorozat vége már rendezve van, csak éppen csökkenő sorrendben, tehát elég szimplán megfordítani.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Milyen CPU léghűtést vegyek?
- Genshin Impact (PC, PS4, Android, iOS)
- Milyen légkondit a lakásba?
- Samsung Galaxy S26 Ultra - fontossági sorrend
- iPhone topik
- Nyáron jön az AOC új, legfeljebb 720 Hz-re képes monitora
- Lalikiraly: Mercis kalandok - Huszonnyolcadik rész - Az újrakezdés
- Bambu Lab 3D nyomtatók
- Eljött a CPU-k kora az AI-piacon
- Milyen notebookot vegyek?
- További aktív témák...
- ASUS Rog Ally Z1 Extreme, 2027.01.12-ig gyári garanciás, hálózati töltőjével, szilikon tokkal eladó!
- HP 250 G7,15.6",i5-1035G1,8GB DDR4,256GB SSD,WIN11
- Lenovo ThinkPad T480s,FHD,14",i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH,jó akku
- Lenovo ThinkPad T480s,FHD,14,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- Ugreen Revodok Max Thunderbolt 4, dokkoló, port többszöröző állomás
- Panasonic LUMIX G 25mm f/1.7 ASPH objektív
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9700X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Nintendo Switch OLED 64GB játékkonzol extrával garanciával hibátlan működéssel
- 27% - LG UltraGear 27GS93QE-B OLED Monitor! 2560x1440 / 240Hz / 0.03ms / G-SYNC / FreeSync
- iPhone X 64GB 100% (3hónap Garancia)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

