Kezdőoldal » Számítástechnika » Programozás » Mi az optimális algoritmus...

Mi az optimális algoritmus tömbben egyszer előforduló elem megkeresésére?

Figyelt kérdés

Ha van egy elem a tömbben, ami csak egyszer fordul elő és minden más elem kétszer.


Pl. [1, 2, 3, 1, 3] tömb esetén a 2 lesz az eredmény, [8, 8, 5, 5, 6] esetén pedig a 6.


A számok 0-9 intervallumban vannak.


Menjek végig a tömbön és számoljam az egyes elemek előfordulását, aztán utána menjek végig az előfordulásokon és az 1-es előfordulással térjek vissza?

Vagy van ennél jobb megoldás?


(Pythonban csinálom, de mindegy a nyelv igazából)



2020. jan. 13. 10:23
1 2 3 4
 21/34 anonim ***** válasza:
54%

"Utóbbinál nem érhető el jobb komplexitás, hiszen minden elemet érinteni kell, tehát ez az optimális megoldás."


Miért kellene?

2020. jan. 13. 12:28
Hasznos számodra ez a válasz?
 22/34 anonim ***** válasza:

#16 Ötletes, tetszik!

Bitműveletekkel jól működhet, de a valódi Python Set bővítés-törlés erősforrásigényes lenne. + Akkor működik, ha egy darab páratlan előfordulást kell keresni, de a példa épp ez, úgyhogy én megvettem. :)

2020. jan. 13. 12:32
Hasznos számodra ez a válasz?
 23/34 anonim ***** válasza:
#21 Mert különben nem tudod megállapítani, hogy melyik elem fordul elő egyszer és az a feladat.
2020. jan. 13. 12:35
Hasznos számodra ez a válasz?
 24/34 anonim ***** válasza:

"Miért kellene?"

Rendezetlen listában egyetlen esetben nem kell, ha az utolsó előtti elemig minden elem kétszer fordult elő, ..de még ilyenkor is praktikus kiolvasni, hogy melyik az egyszer előforduló utolsó elem, mert gyorsabb, mint kitalálni. Minden más esetben a legutolsó elemtől is függ, hogy mi az eredmény.

2020. jan. 13. 12:36
Hasznos számodra ez a válasz?
 25/34 anonim ***** válasza:

off

"optimális algoritmus"

Ez nemrég külön vita tárgya volt, hogy mi az az "optimális". A lényeg, hogy ez függ az elvárásoktól, feltételektől. Szerintem te az ideális algoritmust keresed. :)

2020. jan. 13. 12:39
Hasznos számodra ez a válasz?
 26/34 anonim ***** válasza:
70%

Na de ez a kérdés (pontosabban az előfeltétel):


"Ha van egy elem a tömbben, ami csak egyszer fordul elő és minden más elem kétszer."


Ebből következik, hogy elég addig vizsgálni, amíg elő nem bukkan a páratlan elem, nem kell a tömbön végig menni.

2020. jan. 13. 13:07
Hasznos számodra ez a válasz?
 27/34 anonim ***** válasza:
Ez csak akkor igaz, ha rendezett a tömb, de itt nem volt ilyen kiinduló feltétel.
2020. jan. 13. 13:11
Hasznos számodra ez a válasz?
 28/34 anonim ***** válasza:
24%
Amikor azt mondják a "jó programozó lusta" nem úgy értik, hogy másokkal kell megcsináltatni a saját feladatod.
2020. jan. 13. 13:19
Hasznos számodra ez a válasz?
 29/34 A kérdező kommentje:
28-as, a feladat már a kérdés kiírása előtt kész volt. Nem véletlenül nem megoldást kérdeztem, hanem, hogy lehet-e jobban csinálni.
2020. jan. 13. 13:35
 30/34 anonim ***** válasza:
49%

" Ez csak akkor igaz, ha rendezett a tömb, de itt nem volt ilyen kiinduló feltétel."


Hogy lenne ez igaz?

A tömbön akkor kellene teljesen végigmenni (több ízben (tehát minden elemet feldolgozni)) ha a páratlan elem lenne az utolsó. Ez a lehető legrosszabb eset.

2020. jan. 13. 13:48
Hasznos számodra ez a válasz?
1 2 3 4

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, 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!