[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Zložitosť algoritmu

Registrovaný: 09.04.11
Prihlásený: 11.01.14
Príspevky: 257
Témy: 26 | 26
Bydlisko: Kesa
NapísalOffline : 18.02.2012 21:45 | Zložitosť algoritmu

Vedel by mi niekto vysvetliť, ako sa určuje konštanta c určujúca zložitosť ( napríklad bubble sortu ) f(N) = cN.N ?
Nejde mi o to výsledok, ale ako sa k nemu dopracovať.


_________________
NB - HP Pavilion DV7 3190 -- Windows® 7 Home Premium 64-bit -- Intel® Core™ i7-720QM 1,6 GHz az 2,8 Ghz Turbo Boost, 6 MB pamäte cache úrovne 2 -- 4 GB DDR3 -- disk 640 GB SATA 5400 ot/min -- rozlíšenie 1600 x 900 -- NVIDIA® GeForce® GT 230M -- 2 815 MB grafickej pamäte s vyhradenou pamäťou 1 GB DDR3 -- pripojenie 802.11 a/b/g/n
Offline

Užívateľ
Užívateľ
Zložitosť algoritmu

Registrovaný: 01.10.06
Prihlásený: 16.05.24
Príspevky: 6562
Témy: 15 | 15
Bydlisko: Bratislava
NapísalOffline : 18.02.2012 22:22 | Zložitosť algoritmu

Mam pocit ze "c" sa nejakym sposobom nespecifikuje to je tam koli tomu aby ked to niekto precital tak vedel ze sa tam nevykonavaju dva vnorene prazdne cykly ale ze sa v nich aj cosi robi. Konkretna hodnota c bude zavisiet od toho na akej platforme to bezi a na akej urovni to breies lebo ak s tym ides az na instrukcie tak tam budes mat povedzme c=50 pri x86 architekture ale na nejakom ARM to bude mozno 70.
V skole sme na predmete analyza a zlozitost algoritmov nikdy nevycislovali hodnotu c


_________________
PC: Intel Q6600@3,33GHz, MSI GTX 670 OC (TwinFrozr IV), DDR2 1066 A-data 8Gb, Seagate Barracuda 7200.12 2000GB, Kingston 240GB SSD, Gigabyte EP35-DS4, MSI OPTIX G273QF , Logitech G502 Proteus Spectrum
Notebook: Sony VAIO CW Series (VPC-CW1S1E/B) / LENOVO Legion 5 Pro 16ACH6H Stingray White || Mobil: Samsung Galaxy S21 FE || Auto: Audi S5 Sportback
Offline

Užívateľ
Užívateľ
Zložitosť algoritmu

Registrovaný: 09.04.11
Prihlásený: 11.01.14
Príspevky: 257
Témy: 26 | 26
Bydlisko: Kesa
Napísal autor témyOffline : 19.02.2012 8:48 | Zložitosť algoritmu

Hej to viem že je časová a priestorová zložitosť a záleži od tvojho PC. Len od nás žiadajú naprogramovať bubble sort a vyčísliť tú zložitosť (naprogramované to mám, ale nechcem to sem dať nech to neni skopčené). Keď je to N.N, tak či tie N-ká nie sú prechody cyklu, ale zároveň je tam aj if, no neviem

// pridané po 6 minútach od posledného príspevku

Takto, mali sme ten algoritmus z efektívniť. Dám sem ten klasický bubble sort a na ňom, keď by mi to mohol dakto vysvetliť
Kód:
for(i = 0; i < pocet; i++)
{
   for(j = 0; j < pocet - 1; j++)
      {
         if(pole[j] > pole[j + 1])
            swap(pole[j], pole[j+1]);
      }
}


P.S.: Nepíšte mi sem prosím žiadne vylepšenia tohto algoritmu, ide mi len o tú zložitosť


_________________
NB - HP Pavilion DV7 3190 -- Windows® 7 Home Premium 64-bit -- Intel® Core™ i7-720QM 1,6 GHz az 2,8 Ghz Turbo Boost, 6 MB pamäte cache úrovne 2 -- 4 GB DDR3 -- disk 640 GB SATA 5400 ot/min -- rozlíšenie 1600 x 900 -- NVIDIA® GeForce® GT 230M -- 2 815 MB grafickej pamäte s vyhradenou pamäťou 1 GB DDR3 -- pripojenie 802.11 a/b/g/n
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.02.12
Prihlásený: 23.02.12
Príspevky: 4
Témy: 0 | 0
NapísalOffline : 22.02.2012 8:59 | Zložitosť algoritmu

Zlozitost algoritmu sa zvykne zjednodusene urcovat podla toho kolkokrat sa procesorovo/casovo intenzivna cast musi vykonat pre dosiahnutie vysledku. Pre funkciu, ktora je v cykle o dlzke "n" je zlozitost "O" zavisla od "n":

O(n)

Co sa tyka tvojho uveneho prikladu, ide o neoptimalizovanie bublinkove triedenie a jeho zlozitost je

O(n*n) // celkovy pocet cyklov = pocet vonkajsich * pocet vnutornych

Obcas, ak pocet cyklov zavisi od nejakych podmienok, uvadza sa minimalna a maximalna zlozitost. V tvojom pripade vsak je pocet cyklov fixne dany, takze

Omin = Omax = O(n*n)

Bublinkovy algoritmus sa da vylepsit tak, ze, pri kazdej iteracii vonkasieho cyklu skontrolujes ci bol v predchadzajucom cykle "swap" vykonany.
Ak ano, pokracujes normalne dalej. Ak nie, mozes skoncit, pretoze pole je zoradene. Pri tejto optimalizacii pre najlepsi pripad (pole je hned na ziacatku zoradene) plati:

Omin(n)

pre najhorsi pripad zlozitost zostava Omax(n*n)


 [ Príspevkov: 4 ] 


Zložitosť algoritmu



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Casova zlozitost

v Assembler, C, C++, Pascal, Java

8

1543

01.11.2008 9:18

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

zistenie algoritmu z hry a...

v Kôš

28

527

27.06.2016 21:31

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

Online výherný automat - tvorba algoritmu, aplikacie na webe

v Ponuka práce

0

606

15.07.2013 15:41

AndrejHronecky



© 2005 - 2024 PCforum, edited by JanoF