mirror of
https://github.com/Relintai/Documents.git
synced 2025-02-21 08:24:20 +01:00
161 lines
2.9 KiB
TeX
161 lines
2.9 KiB
TeX
|
|
\begin{document}
|
|
|
|
Algo 2
|
|
|
|
Ajánlott irodalom:
|
|
Algoritmusok, (Rónyai, Szabó, ?)
|
|
|
|
|
|
Ismétlés
|
|
Algo1 -> ADT, ADS, etc
|
|
|
|
Verem
|
|
|
|
Axiómák
|
|
1. Üres-e(Üres) Igaz
|
|
2. ...
|
|
5. etc
|
|
|
|
1. ADT
|
|
|
|
2. ADS
|
|
|
|
szrekezeti gráf + { műveletek + axiómák } -> ADT
|
|
|
|
pl (10)->(20)->(30)->(40) lehet pl verem, sor (attól függ, milyen műveletek )
|
|
|
|
3. reprezentáci
|
|
(1) tömbös
|
|
(2) pointeres
|
|
|
|
----
|
|
|
|
Műveletigények
|
|
|
|
1. Buborékrendezés
|
|
Alulról felfele a szomzédos elemek cseréjével felbuborékoztatjuk az elemeket
|
|
|
|
1. elem összehas. Ö(sz) = n - 1
|
|
2. elem n - 2
|
|
3. elem n - 3
|
|
etc
|
|
|
|
Ö_{sz} = \frac{n(n - 1)}{2} = {\Theta}(n^2) vagy O(N^2)
|
|
|
|
f: {\mathbb{N}} \rightarrow {R}_0^+
|
|
|
|
Def:
|
|
O(g) = {f | {\exists}c>0, elég nagy n-re f(n) \leq cg(n) }
|
|
O(g) = {f | {\exists}c>0, elég nagy n-re f(n) < cg(n) }
|
|
{\Omega}(g) = {f | {\exists}c>0, elég nagy n-re f(n) \geq cg(n) }
|
|
{\omega}(g) = {f | {\exists}c>0, elég nagy n-re f(n) > cg(n) }
|
|
|
|
Összehasonlító rendezések Műveletigénye
|
|
|
|
(A) alsó becslés:
|
|
|
|
műv. igény:
|
|
|
|
ÖH(n) = {\Omega}(n \cdot log(n))
|
|
|
|
Döntési fa:
|
|
* \forall alg-hoz konstruálható
|
|
* igaz/hamis kérdések
|
|
|
|
pl.: "A[3] > A[1]^2"
|
|
|
|
füzet (1)
|
|
|
|
n! levél (n elemet hányféleképp lehet sorbarendezni: n!)
|
|
|
|
Beszúró rendezés
|
|
|
|
1 | 2 | 5 | 7 || 4 | 1
|
|
1 | 2 | 5 | 7 || [] | 1
|
|
1 | 2 | 5 | [] | 7 ||1
|
|
1 | 2 | [] | 5 | 7 ||1
|
|
1 | 2 | 4 | 5 | 7 ||1
|
|
|
|
n*log n es rendezések:
|
|
verseny, kupac, összefésülő, gyors
|
|
|
|
Verseny rendezés
|
|
|
|
n = 2^k
|
|
(binfa)
|
|
(általában a tárhely igény miatt nem használják)
|
|
füzet(2)
|
|
|
|
|
|
Kupac renndezés
|
|
|
|
Kupac:
|
|
Def (ADS)
|
|
-Teljes, balra tömörített, bnáris fa.
|
|
-Szülő < Gyerek (kupactulajdonság)
|
|
|
|
Műveletek (ADT)
|
|
Beszúr, Mintöröl
|
|
|
|
Füzet (3)
|
|
|
|
Felszivárog(v) (logn)
|
|
{
|
|
ha v > szülő(v1, v2)
|
|
{
|
|
csere a kisebbel.
|
|
}
|
|
}
|
|
|
|
|
|
Összefésölő Rendezés
|
|
(Oszdmeg és uralkodj) = rekurzió
|
|
|
|
Füzet
|
|
|
|
Műv igény:
|
|
k és l hosszú rendezett tömb esetén k + l - 1
|
|
|
|
műv igény: n \cdot log(n)
|
|
|
|
n = 2^k
|
|
|
|
T(n) = összehasonlítások
|
|
|
|
T(n) \leq n - 1 + 2T(\frac{n}{2}) \leq n - 1 + 2 (\frac{n}{2} - 1 + 2T(\frac{n}{4})) \leq
|
|
\leq n - 1 + 2(\frac{n}{2}) + 4T(\frac{n}{4}) + ... + 2^{k - 1}(\frac{n}{2^{k - 1}}) + 2^{k - 1} + 2^{k - 1} T(\frac{n}{2^{k-1}}) =
|
|
= k \ cdot n - k = nlogn - log_2n = O(nlog_2n)
|
|
|
|
|
|
Gyorsrendezés
|
|
|
|
Veszünk egy véletlen számon 1 től n ig,
|
|
|
|
|
|
|
|
Műv igény
|
|
|
|
...
|
|
|
|
C(n) = (n - 1) + \frac{2}{n}(C(1) + C(2) + ... + C(n))
|
|
-C(n - 1) = n - 2 + \frac{2}{n - 1}(c(1)+ ... + C(n - 1))
|
|
--------------------------------------------------------
|
|
Rendezés után:
|
|
\frac{C(n)}{n + 1} = \frac{2(n - 1)}{n(n + 1)} + \frac{c(n - 1)}{n} < \frac{2}{n} + \frac{C(n - 1)}{n} <
|
|
< \frac{2}{n} + \frac{2}{n-1} + \frac{B(n-2){n-1}} < ...
|
|
(2 kiemel)
|
|
... < 2(\frac{1}{n} + \frac{1}{n-1} + \frac{1}{n-2} + ... + \frac{1}{2} + \frac{1}{1}) ~= 2nlogn = O(n log n)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
\end{document}
|