Hirdetés
- Samsung Galaxy A54 - türelemjáték
- Bloomberg: Az iOS 27 a stabilitásra és az AI-ra fókuszál majd
- Kompatibilis lett az Android Quick Share és az Apple AirDrop
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Akciófigyelő: Százezer forint engedmény a Nothing Phone (3)-ra
- Xiaomi 14 - párátlanul jó lehetne
- Fotók, videók mobillal
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Google Pixel topik
Új hozzászólás Aktív témák
-
modder
aktív tag
Hali,
Csinálsz egy 10 elemű segédtömböt, amibe a 10, tag1 attribútum szerinti legkisebb értéket fogod tárolni. Ez a segédtömb tag1 szerinti NÖVEKVŐ sorrendben fogja tartalmazni az Adatszerk típusú adatokat.
Végigiterálsz az eredeti tömbön, és minden egyes elemére megnézed, hogy a tag1 attribútuma kisebb-e, mint a legnagyobb tag1 attribútum a segédtömbödben. Ha igen, akkor az addigi 10 legkisebb közé be fog kerülni, err szolgál a pushMin() metódus.struct Adatszerk {
int tag1;
int tag2;
}
// legyen egy listád az adatszerkezettel
Adatszerk adatok[] = { Adatszerk(1,1), Adatszerk(1,2), ... }
int adatokSize = 50 // vagy akármennyi
Adatszerk[] legkisebb10 = Adatszerk[10];
initLegkisebb10( legkisebb10 ); // mindegyiket feltöltöd legalább akkora értékkel, amekkora maximum értéke lehet tag1-nek
for( int i = 0; i < adatokSize; i++ ){
if( adatok[i].tag1 < legkisebb10[9].tag1 ) {
pushMin( legkisebb10, adatok[i] );
}
}
// ezzel a függvénnyel növekvő sorrendbe szúrjuk be 'legkisebb10'-be a legkisebb tag1 attribútum szerinti
// adatokat
void pushMin( Adatszerk[] legkisebb10, Adatszerk adat ) {
int i = 0;
for ( i = 0; i < 10 ; i++ ) {
if ( adat.tag1 < legkisebb10[i].tag1 ) {
break;
}
}
// a legkisebb10 tömbben az i. helyen volt az elem, ami már nagyobb volt 'adat'-nál
// ezért oda tesszük be az 'adat'-ot, és a maradékot hátra toljuk a tömbben
// fontos, hogy a for-ciklus a tömb hátulja felől menjen i-ig
for( int k = 9 ; k > i ; k-- ) {
legkisebb10[k] = legkisebb10[k-1];
}
// i-edig helyre beszúrjuk az új 'adat'-ot
legkisebb[i] = adat;
}Amit WonderCSabo is említett, ha nem olyan nagy a listád, szóval lemásolhatod, akkor lehet, hogy egyszerűbb először rendezve lemásolni, majd az első 10-et kiírni
-
WonderCSabo
félisten
A következőt teheted:
1. lépésben kiválasztod a 10. legkisebb elemet valamelyik kiválasztó algoritmussal.
2. lépésben még egyszer végigiterálsz a listádon, és ha az aktuális elem kisebb vagy egyenlő a 10. legkisebb elemmel, akkor kiírod.Arra figyelj, hogy van a linken felsoroltak között van olyan algoritmus, ami megváltoztatja a listádat. Ha olyat használsz, akkor először másold le az egész listát, hogy az eredeti ne változzon.
Egy másik módszer lehet, hogy ha rendező algoritmust használsz, vagy elemeket rendezetten tároló segéd adatszerkezetet, de asszem egyszerűbb lesz számodra az előző megoldás.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Jövedelem
- VR topik (Oculus Rift, stb.)
- Mazda topik
- BestBuy topik
- Samsung Galaxy A54 - türelemjáték
- Futás, futópályák
- Anime filmek és sorozatok
- Bloomberg: Az iOS 27 a stabilitásra és az AI-ra fókuszál majd
- További aktív témák...
- Lenovo Thinkcentre M920t Tower/ M720s / M920s SFF / i5-8-9. gen/ WIN10-11/számla, garancia
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AY Universal USB-C Dock
- LG 27GS60QX-B - 27" Ívelt VA - 2560x1440 2K QHD - 180Hz 1ms - AMD FreeSync Premium
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Gamer PC-Számítógép! Csere-Beszámítás! I7 12700E / RTX 3070Ti / 32GB DDR5 / 1 TB SSD
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


