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