Kezdőoldal » Számítástechnika » Programozás » C# módusz meghatározása?

C# módusz meghatározása?

Figyelt kérdés

Üdv! Az lenne a kérdésem, hogy van-e valami egyszerű mód egy növekvő sorrendbe rendezett listából megmondani a móduszt?


Van egy megoldásom, de az kicsit bonyolult és nem is kezeli azt az esetet, mikor esetleg több módusz is lehetséges.


Az én (szerintem bonyolult) megoldásom: (A növekvő sorrendbe rendezett lista a továbbiakban "list".)


int mode;

int sum = 1;

list<int> secondlist = new List<int>();

for(int i = 1; i < list.Count; i++)

{

if(list[i] == list[i-1]){ sum++;}

else{ secondlist.Add(sum); sum = 1;}

}

secondlist.Add(sum);

sum = 0;

for(int i = 0; i< secondlist.IndexOf(secondlist.Max()); i++)

{

sum = sum + secondlist[i];

}


mode = list[sum];


2020. nov. 1. 09:37
 1/2 anonim ***** válasza:

Uhh...


Ha nem valami rohadtnagy listáról van szó amit nem tudsz betölteni memóriába, akkor csak egyszerűen csoportosítd és darbszám szeirnrt csökkenő sorrendben vedd az értékeket. (Addig amíg a darabszám ugyanaz)


var list = new List<int> {5, 3, 1, 2, 0, 3, 4, 5, 2, 6, 1, 1, 4, 0, 2, 3, 2, 0, 2, 3, 1, 4, 1, 6};


var groups = list.GroupBy(x => x).OrderByDescending(x => x.Count());


int count = -1;

foreach (var g in groups)

{

    int c = g.Count();

    if (count != -1 && count != c) break;


    Console.WriteLine(g.Key);

    count = c;

}

2020. nov. 1. 11:02
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
+annyni, hogy mint látod itt nem is feltétel a növekvő rendezettség... persze ha úgy van a listád, akkor lehet sokkal hatekonyabb kódot írni. De ez tényleg csak akkor éri meg, ha sok számod van.
2020. nov. 1. 11:05
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!