Kezdőoldal » Számítástechnika » Programozás » Milyen bonyolultsági osztályba...

Milyen bonyolultsági osztályba tartozik ez az algoritmus?

Figyelt kérdés

Két lépést hajtunk végre egy string tömbön, először megcseréljük minden string első és utolsó karakterét aztán rendezzük a tömböt csökkenő ABC sorrendben.

Ez milyen bonyolultsági osztály lesz?



2020. aug. 8. 08:34
1 2 3 4 5
 11/46 anonim ***** válasza:

O(f(n))-nek azok az elemei, amikhez tudunk találni olyan c konstans számot, hogy egyik elem se érje el c*f(n)-t, ahogy az n növekszik egy rögzített n0 után. Tehát f(n)-t fel tudod rajzolni úgy a grafikonra tetszőlegesen eltolva az y-n tengelyen, hogy akármilyen összehasonlítást végzel, ezt az értéket ne érje el. Neked komplexitás becslése során egy ilyen "maximumot" (idézőjel!) kell keresned. O(m) nem azt mondja, hogy m összehasonlítást kell végezned, hanem azt, hogy akármekkorák a stringek, egyik sem lesz költségesebb mint c*m.

Ne keverd össze az "alsó becsléssel', ami az omega, vagy a kétoldalival, ami a teta.

2020. aug. 8. 12:13
Hasznos számodra ez a válasz?
 12/46 A kérdező kommentje:

"a stringek összehasonlítása pedig lineáris, így O(m), ahol m a leghosszabb string hossza"


Én ezt kérdezem, hogy itt miért a leghosszabb string hossza m?

2020. aug. 8. 12:17
 13/46 A kérdező kommentje:

Én úgy gondolnám hogy a 2. leghosszabb string hossza mert a leghosszabbat csak akkor vizsgáljuk végig ha van más ugyanolyan hosszú is. Akkor viszont ugyanúgy a 2. leghosszabbtól függ a bonyolultság.

Ez miért nem így van?

2020. aug. 8. 12:20
 14/46 anonim ***** válasza:

"A rendezés pedig szerinte akkor lenne n*logn ha minden string 1 karakter hosszú lenne hiszen stringeket karakterenként hasonlítunk össze és nem mindegy hogy 1 karakter hosszú stringeket hasonlítunk össze vagy 1 millió karakter hosszúakat."


LOL

A rendezés ABC szerint kelene, hogy végbemenjen, akkor mi a bánatnak kéne végigmenni a string minden egyes karakterén?

Azt nem tudhatjuk előre, hogy a stringek tartalma mi, tehát ennek a feladatnak az Ordóját ennyi infóból lehetetlen megállapítani.

2020. aug. 8. 12:21
Hasznos számodra ez a válasz?
 15/46 A kérdező kommentje:

14-es tegyük fel ez a két stringed:

"aaaaaaaaaaaaaaaaaaaaaaaaaaaa"

"aaaaaaaaaaaaaaaaaaaaaaaaaaab"

Hány karakteren mész végig hogy összehasonlítsd?

Vagy a nagy ordó jelentését nem ismered?

2020. aug. 8. 12:24
 16/46 A kérdező kommentje:

A kérdést amúgy 8-as megválaszolta szerintem.

Azt nem értem hogy m miért a leghosszabb string hossza és miért nem a 2. leghosszabbé.

2020. aug. 8. 12:25
 17/46 anonim ***** válasza:

14-es tegyük fel ez a két stringed:


"aaaaaaaaaaaaarwetedfcvbtzrknmsd"


"aaaaaaaaaaaabedfaskdfvsefiburelnikaveldexarte"


Hány karakteren mész végig hogy összehasonlítsd?

Mert ha az egészen, akkor meg is érdemled.


Megismétlem:

Azt nem tudhatjuk előre, hogy a stringek tartalma mi, tehát ennek a feladatnak az Ordóját ennyi infóból lehetetlen megállapítani.

2020. aug. 8. 12:32
Hasznos számodra ez a válasz?
 18/46 A kérdező kommentje:
17-es a nagy ordó upper boundot jelöl. Hogy a legrosszabb esetben mennyi a bonyolultság. 11-es még a definíciót is leírta.
2020. aug. 8. 12:34
 19/46 A kérdező kommentje:

Közben találtam rá stackoverflow-n is magyarázatot:

[link]


Tehát valóban 8-asnak (és osztálytársamnak) van igaza.

Csak azt nem értem továbbra sem hogy m miért a leghosszabb string hossza.

2020. aug. 8. 12:36
 20/46 anonim ***** válasza:

"Osztálytársam azt mondja hogy az első lépés attól függ hogy milyen nyelvről beszélünk mert ha mutable a string"


Az osztálytársad inkjább még tanulgasson.

A komplexnél az egész feladatot vesszük, nem azt, hogy ekkor vagy akkor mi van.

Ha a válaszott eszköz (nyelv) igényel cserét, akkor a csere is a feladat része lesz, tehát a komplexre is hatással lesz.

2020. aug. 8. 12:44
Hasznos számodra ez a válasz?
1 2 3 4 5

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!