Szmtselmlet 1 Szmtselmlet l Algoritmusok bonyolultsga idbonyolultsg elemi
Számításelmélet 1
Számításelmélet l Algoritmusok bonyolultsága időbonyolultság elemi lépések száma l tárbonyolultság memóriaigény l l Minden lehetséges inputra l Legrosszabb esetre
Keresések n adatelemre – n hosszúságú inputra l Lineáris keresés: l legrosszabb esetben: n összehasonlítás időbonyolultság: l Bináris keresés: legrosszabb esetben: l időbonyolultság: l
„Ordó” jelölés
Rendezések ln elemű tömb rendezése l összehasonlítások száma l elemcserék száma
Buborék-rendezés l összehasonlítások száma: minden esetben: for (i=n-1; i>0; i--) for (j=0; j<i; j++) l elemcserék száma: if (T[j+1] < T[j]) l legrosszabb esetben: swap(T[j+1], T[j]); l (fordítottan rendezett tömb)
Beszúrásos rendezés l Lineáris l kereséssel: összehasonlítások száma: l legrosszabb esetben: (rendezett tömb) l elemcserék száma: l legrosszabb esetben: (fordítottan rendezett tömb)
Beszúrásos rendezés l Bináris l összehasonlítások száma: l l kereséssel: legrosszabb esetben: elemcserék száma: l legrosszabb esetben:
Összefésüléses rendezés l összehasonlítások száma: legrosszabb esetben: sort(T[1. . n]) { if (n==1) return T; l l elemcserék l } száma: A=sort(T[1. . n/2]); legrosszabb esetben: B=sort(T[n/2+1. . n]); return merge(A, B);
Rendezések l Buborék-rendezés: l Beszúrásos rendezés: lineáris kereséssel: l bináris kereséssel: l l Összefésüléses rendezés:
Gráfok l Gráf: csúcsok (vertices) halmaza, élek (edges) halmaza, l l l Élekhez költség: l Út: l költsége:
Elérhetőség gráfokban n csúcsú gráfban l Van-e út két csúcs között? l l l mélységi keresés szélességi keresés Melyik a legolcsóbb út l l két adott csúcs között? egy adott csúcsból az összes többibe? l l Dijsktra algoritmusa bármely két csúcs között? l Floyd módszere
Hamilton-kör l több mint 100 éve tanulmányozzák l „naív” algoritmus: csúcsok permutációja kör-e l időbonyolultság: l l Van-e polinomiális algoritmus?
Bonyolultsági függvények l Logaritmikus: l Lineáris: négyzetes: l köbös: l l Exponenciális: l Faktoriális: l stb. bonyolultság l Polinomiális:
Közlekedési lámpák l lámpák = {ac, ad, bc, bd, ec, ed} l lámpák {piros, zöld} l konfliktuslehetőségek: (ac, bd) tiltott l (ed, bc) nem tiltott l
Közlekedési lámpák l Gráffal ábrázolás: csúcsok: ac, ad, bc, bd, ec, ed l élek: (v, w) él, ha v és w konfliktusos l ac bc ec ad bd ed
Közlekedési lámpák l Gráf l színezése: ha (v, w) él, akkor v és w színe különböző l Nem ismert polinomiális algoritmus ac bc ec ad bd ed
- Slides: 17