Kezdőoldal » Számítástechnika » Programozás » Mi a legjobb nagy O komplexitá...

Mi a legjobb nagy O komplexitás amivel megcsinálható ez a feladat?

Figyelt kérdés

Van egy X méretű tömb ami nem módosítható. Benne számok 1-től X-1-ig.

Mindegyik szám egyszer fordul elő, kivéve egyet, ami kétszer, ezt a számot kell megtalálni.

Pl. 3 1 2 2 tömbből a 2-t kell megtalálni.


Jól gondolom hogy ha O(n) időben akarom megcsinálni, akkor O(n) hely kell hozzá, ha pedig O(1) hellyel akkor O(n^2) idő?



2020. júl. 10. 15:08
 1/6 anonim ***** válasza:
17%

"Jól gondolom hogy ha O(n) időben akarom megcsinálni, akkor O(n) hely kell hozzá, ha pedig O(1) hellyel akkor O(n^2) idő?"


Nem, O(1) space-ben van O(nlogn) és O(n) megoldás is. Bár utóbbi valszeg lassabb egy O(n)/O(n)-nél a konstans faktor miatt.

2020. júl. 10. 15:17
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Rendben köszi a gyors választ!
2020. júl. 10. 15:22
 3/6 anonim ***** válasza:
39%

Egyébként egy O(n)/O(1)-es algoritmus az, hogy összexor-olod a tömbben lévő számokat és 1-(x-1)-ig a számokat. A két érték pont a dpula számmal fog eltérni, mert azok "kioltják" egymást.


Pl C#-ban:

            var tomb = new[] {1, 4, 2, 3, 4};


            int x = 0;

            int y = 0;

            for (int i = 0; i < tomb.Length; i++)

            {

                x ^= i;

                y ^= tomb[i];

            }


            Console.WriteLine(x^y);

2020. júl. 10. 15:54
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Akkor mi a helyzet ha 2-nél többször is előfordulhat a többször előforduló elem? Pl 3 1 2 2 2 a tömb.
2020. júl. 10. 18:13
 5/6 anonim ***** válasza:
54%
Ugyanaz a helyzet, O(n)/O(1) a legjobb elérhető komplexitás, négyzetesnél pedig egy O(nlogn) is jobb még.
2020. júl. 10. 18:35
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Oké köszi!
2020. júl. 10. 18:52

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!