-
Fototrend

Ú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!
- Óra topik
- Váratlanul ledobta asztali csúcs-Ryzenjét az AMD
- Jófogás tapasztalatok
- Kedvenc zene a mai napra
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen házat vegyek?
- Windows 11
- HiFi műszaki szemmel - sztereó hangrendszerek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Anglia - élmények, tapasztalatok
- További aktív témák...
- Lenovo ThinkPad T14 Gen 2, i5-1145G7 CPU, 16GB DDR4, 512GB SSD, AAM SZÁMLA, 1ÉV GARANCIA!
- Dell Latitude 5490 FHD, i5-8350U, 8GB DDR4,256GB SSD, AAM SZÁMLA(Vállalkozásoknak is!), 1ÉV GARANCIA
- Dell Latitude 7490 FHD, TOUCH, i5-8350U, 8GB DDR4, 256GB SSD, AAM SZÁMLA, 1ÉV GARANCIA!
- Acer Predator Helios Neo 18 újszerű, garanciás erőgép
- RTX 3060TI Aorus/I7-6700K/16GB RAM/1TB SSD
- 0% THM 4 havi részlet, beszámítás! Gamer PC, notebook, konzol, Apple termék, hardver KAMATMENTESEN!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo ThinkPad L13 Gen 3 13,3" - i5 1235U, 16GB RAM, SSD, jó akku, magyar bill. - számla, 6 hó gar
- TOP Pure White PC /Ryzen 7 9850X3D, 32GB DDR5 RAM, 1TB M.2 PCIe SSD/ akciós áron eladó!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

