Halmaz, multihalmazalgtan1.elte.hu/downloads/eloadas/Halmaz1.pdfHalmaz típus 2020. 09. 28. 13:20...
Transcript of Halmaz, multihalmazalgtan1.elte.hu/downloads/eloadas/Halmaz1.pdfHalmaz típus 2020. 09. 28. 13:20...
-
Halmaz, multihalmaz
-
Halmaz féleségek
1. Halmaz
Gyümölcsök: {alma,körte,szilva,barack}
2. Multihalmaz
Állatok: {(macska,4),(rigó,2),(galamb,3)}
3. Intervallumhalmaz – diszjunkt
Óráim: {[8-10],[13-14],[16-20)}
4. Intervallumhalmaz
Események: {[9-11],[16-22],[17-18],[20-25]}
2020. 09. 28. 13:20Zsakó László: Halmazok 2/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus
2020. 09. 28. 13:20
Értékhalmaz:
Az alaphalmaz (amely az Elemtípus által van meghatározva)
iteráltja („mely elemek lehetnek benne a halmazban”).
Az Elemtípus általában valamely véges diszkrét típus lehet,
legtöbbször még az elemszámát is korlátozzák (
-
Halmaz típus
2020. 09. 28. 13:20
Műveletek
metszet ()
unió ()
különbség (–)
komplemens
eleme (egy elem benne van-e a halmazban) ()
része (egyik halmaz részhalmaza-e a másiknak) ()
Zsakó László: Halmazok 4/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus
2020. 09. 28. 13:20
Műveletek
Halmazba (elem hozzá vétele egy halmazhoz): H:=He}
Halmazból (elem elhagyása egy halmazból): H:=H–e}
Beolvasás (halmaz beolvasása)
Kiírás (halmaz kiírása),
Üres (üres halmaz létrehozás eljárás), vagy
Üres'Halmaztípus előre definiált konstans
Üres? (logikai értékű függvény).
Zsakó László: Halmazok 5/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Elemek felsorolása
Halmaz(Elemtípus)=Rekord(db: Egész,
elem: Tömb(1..MaxDb:Elemtípus))
A halmaz elemeinek felsorolásával adjuk meg a halmazt, annyi
elemű tömbben, ahány elemű éppen a halmaz (pontosabban
az első db darab elemében).
Zsakó László: Halmazok 6/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Beolvasás(Változó a: Halmaz(Elemtípus)):
Be: a.db [a halmaz elemszáma]
Ciklus i=1-től a.db-ig
Be: a.elem[i]
Ciklus vége
Eljárás vége.
Feltesszük, hogy a bemenetben minden elem egyszer van.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő
a halmaz elemszámával arányos.
Zsakó László: Halmazok 7/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Kiírás(Konstans a: Halmaz(Elemtípus)):
Ki: a.db [a halmaz elemszáma]
Ciklus i=1-től a.db-ig
Ki: a.elem[i]
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő
a halmaz elemszámával arányos.
Zsakó László: Halmazok 8/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Üres(Változó a: Halmaz(Elemtípus)):
a.db:=0
Eljárás vége.
Műveletigény számítása:
Nem függ a halmaz elemszámától.
Üres?(Konstans a: Halmaz(Elemtípus)):
Üres?:=(a.db=0)
Függvény vége.
Műveletigény számítása:
Nem függ a halmaz elemszámától.
Zsakó László: Halmazok 9/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Halmazba(Változó a: Halmaz(Elemtípus),
Konstans e: Elemtípus):
i:=1
Ciklus amíg i≤a.db és a.elem[i]≠e
i:=i+1
Ciklus vége
Ha i>a.db akkor a.db:=a.db+1; a.elem[a.db]:=e
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor fut le, azaz a futási
idő a halmaz elemszámával arányos.
Zsakó László: Halmazok 10/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Halmazból(Változó a: Halmaz(Elemtípus),
Konstans e: Elemtípus):
i:=1
Ciklus amíg i≤a.db és a.elem[i]≠e
i:=i+1
Ciklus vége
Ha i≤a.db akkor a.elem[i]:=a.elem[a.db]
a.db:=a.db-1
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor
fut le, azaz a futási idő a halmaz
elemszámával arányos.Zsakó László: Halmazok 11/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
eleme(Konstans e:Elemtípus,a:Halmaz(Elemtípus)):
i:=1
Ciklus amíg i≤a.db és ea.elem[i]
i:=i+1
Ciklus vége
eleme:=i≤a.db
Függvény vége.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő a
halmaz elemszámával arányos.
Zsakó László: Halmazok 12/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
része(Konstans a,b: Halmaz(Elemtípus)):
i:=1
Ciklus amíg i≤a.db és eleme(a.elem[i],b)
i:=i+1
Ciklus vége
része:=i>a.db
Függvény vége.
Műveletigény számítása:
A ciklus az A halmaz elemszámaszor fut le, az eleme függvény
pedig a B halmaz elemszámaszor, azaz a futási idő a két halmaz
elemszámának szorzatával arányos.
Zsakó László: Halmazok 13/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
unió(Konstans a,b: Halmaz(Elemtípus)):
c:=a
Ciklus i=1-től b.db-ig
Ha nem eleme(b.elem[i],a)
akkor Halmazba(c,b.elem[i])
Ciklus vége
unió:=c
Operátor vége.
Műveletigény számítása:
A külső ciklus a B halmaz elemszámaszor fut le, az eleme függ-vény pedig az A halmaz elemszámaszor,azaz a futási idő a két halmaz elemszámá-nak szorzatával arányos.
Zsakó László: Halmazok 14/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
metszet(Konstans a,b: Halmaz(Elemtípus)):
c.db:=0
Ciklus i=1-től a.db-ig
Ha eleme(a.elem[i],b)
akkor Halmazba(c,a.elem[i])
Ciklus vége
metszet:=c
Operátor vége.
Műveletigény számítása:
A ciklus az A halmaz elemszámaszor fut le, az eleme pedig leg-rosszabb esetben a B halmaz elemszáma-szor, azaz a futási idő a két halmaz elem-számának szorzatával arányos.
Zsakó László: Halmazok 15/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Megjegyzések:
A megoldás alapvető problémája, hogy sehol sem ellenőrizhető, hogy a halmazban valóban csak a benne előfordulható elemek vannak.
Az így ábrázolt halmazok elemtípusára semmilyen megkötést nem kell tennünk, hiszen egy tömbben bármilyen elem elhelyezhető.
Arra sincs korlátozás, hogy mekkora lehet az alaphalmaz elem-száma, amiből a halmaz elemei származnak. Csak annyi a meg-kötésünk, hogy a konkrét halmazok elemszámát korlátozzuk.
Zsakó László: Halmazok 16/52
A komplemens halmaz nem előállítható,
ha nem tároljuk az összes elemet.
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Mi lenne, ha a halmaz elemeit rendezve sorolnánk fel?
Az eleme műveletben lehetne logaritmikus keresés, futási ideje a halmaz elemszámának logaritmusával arányos.
Az halmazba, halmazból műveletekben lehetne logaritmikus keresés, de az elemek mozgatása miatt marad a lineáris futási idő.
Az únió, metszet, része műveletek megvalósíthatók a ren-dezett sorozatok összefuttatási elvével, így azok műveletigénye a két halmaz elemszáma összege lehet.
Zsakó László: Halmazok 17/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Bittérkép – logikai vektor
Halmaz(Elemtípus)=Tömb(Min'Elemtípus..
Max'Elemtípus:Logikai)
A halmazt {igaz,hamis} elemekből álló vektorként értelmezzük,
ahol indexként használjuk az elem típusú értéket.
Az ilyen halmaz mindig rendezett halmaz.
Megjegyzés: az elemszám tárolása segíthet az üresség
vizsgálatán, de plusz teher a többi műveletben.
Zsakó László: Halmazok 18/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Beolvasás(Változó a: Halmaz(Elemtípus)):
Be: N [a halmaz elemszáma]
Üres(a)
Ciklus i=1-től N-ig
Be: e; a[e]:=igaz
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz elemeinek számaszor fut le, azaz a futási idő
a halmaz elemszámával arányos.
Zsakó László: Halmazok 19/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Kiírás(Konstans a: Halmaz(Elemtípus)):
Ciklus i=Min'Elemtípus-tól Max'Elemtípus-ig
Ha a[i] akkor Ki: i
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz
a futási idő a halmaz elemtípusának számosságával arányos.
(Kiválogatás tétel)
Zsakó László: Halmazok
Mi lenne, ha tárolnánk a halmaz
legkisebb és legnagyobb elemét is?
20/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Üres(Változó a: Halmaz(Elemtípus)):
Ciklus i=Min'Elemtípus-tól Max'Elemtípus-ig
a[i]:=hamis
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz
a futási idő a halmaz elemtípusának számosságával arányos.
Zsakó László: Halmazok 21/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Üres?(Konstans a: Halmaz(Elemtípus)):
i:=Min'Elemtípus
Ciklus amíg i≤Max'Elemtípus és nem a[i]
i:=i+1
Ciklus vége
Üres?:=(i>Max'Elemtípus)
Függvény vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz
a futási idő a halmaz elemtípusának számosságával arányos.
Zsakó László: Halmazok
(Eldöntés tétel)
22/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Halmazba(Változó a: Halmaz(Elemtípus),
Konstans e: Elemtípus):
a[e]:=igaz
Eljárás vége.
Műveletigény számítása:
Nem függ a halmaz elemszámától.
Zsakó László: Halmazok 23/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Halmazból(Változó a: Halmaz(Elemtípus),
Konstans e: Elemtípus):
a[e]:=hamis
Eljárás vége.
Műveletigény számítása:
Nem függ a halmaz elemszámától.
Zsakó László: Halmazok 24/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
eleme(Konstans e:Elemtípus,a:Halmaz(Elemtípus)):
eleme:=a[e]
Függvény vége.
Műveletigény számítása:
Nem függ a halmaz elemszámától.
Zsakó László: Halmazok 25/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
része(Konstans a,b: Halmaz(Elemtípus)):
i:=Min'Elemtípus
Ciklus amíg i≤Max'Elemtípus és
nem (a[i] és nem b[i])
i:=i+1
Ciklus vége
része:=i>Max'Elemtípus
Függvény vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a
futási idő a halmaz elemtípusának
számosságával arányos. (Eldöntés tétel)
Zsakó László: Halmazok 26/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
unió(Konstans a,b: Halmaz(Elemtípus)):
Ciklus i=Min'Elemtípus-tól Max'Elemtípus-ig
c[i]:=a[i] vagy b[i]
Ciklus vége
unió:=c
Operátor vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a
futási idő a halmaz elemtípusának számosságával arányos.
Zsakó László: Halmazok
(Másolás – függvényszámítás tétel)
27/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
metszet(Konstans a,b: Halmaz(Elemtípus)):
Ciklus i=Min'Elemtípus-tól Max'Elemtípus-ig
c[i]:=a[i] és b[i]
Ciklus vége
metszet:=c
Operátor vége.
Műveletigény számítása:
A ciklus a halmaz lehetséges elemeinek számaszor fut le, azaz a
futási idő a halmaz elemtípusának számosságával arányos.
Zsakó László: Halmazok
(Másolás – függvényszámítás tétel)
28/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
Megjegyzések:
Ennél az ábrázolásnál szigorú megkötés az, hogy a halmaz lehetséges elemei indexként használhatók legyenek!
Emiatt így például nem definiálható síkbeli pontok halmaza, szavak halmaza, …
Ha azonban a halmaz egy véges sokaságból veszi fel az elemeit, akkor ezek egy tömbbe elhelyezhetők és a továbbiakban ezen tömb indexeivel ábrázolhatjuk a halmazt!
Zsakó László: Halmazok 29/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Halmaz típus ábrázolása
2020. 09. 28. 13:20
STL set halmazosztály:
Műveletei:
• üres?
• üres
• eleme
• Halmazba
• Halmazból
• elemszám
• min
Zsakó László: Halmazok 30/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus
2020. 09. 28. 13:20
Értékhalmaz:
Az alaphalmaz (amely az Elemtípus és egy darabszám által van
meghatározva) iteráltja („mely elem hányszoros multiplicitással
van benne a multihalmazban”).
Példa: Állatok: {(macska,4),(rigó,2),(galamb,3)}
Zsakó László: Halmazok 31/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus
2020. 09. 28. 13:20
Műveletek
metszet () (értékek metszete, multiplicitások minimuma)
unió () (értékek uniója, multiplicitások összege)
max (értékek uniója, multiplicitások maximuma),
különbség (–) (értékek különbsége, multiplicitások
különbsége; nincs benne egy elem, ha a multiplicitások
különbsége 1-nél kisebb)
Zsakó László: Halmazok 32/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus
2020. 09. 28. 13:20
Műveletek
eleme (egy elem benne van-e a multihalmazban) ()
benne (egy elem legalább adott multiplicitással benne van-e
a multihalmazban)
multiplicitás (egy elem hányszoros multiplicitással van
benne a multihalmazban)
része (egyik multihalmaz részhalmaza-e a másiknak) ()
mindközös? (a két multihalmaz az elemek multiplicitásától
eltekintve azonos-e)
Zsakó László: Halmazok 33/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus
2020. 09. 28. 13:20
Műveletek
Multihalmazba (elem hozzávétele egy multihalmazhoz):
H:=He,1}
Multihalmazból (elem elhagyása egy multihalmazból):
H:=H–e,1}
Beolvasás (multihalmaz beolvasása)
Kiírás (multihalmaz kiírása),
Üres (üres multihalmaz létrehozás eljárás), vagy
üres? (logikai értékű függvény).
Zsakó László: Halmazok 34/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Elemek felsorolása
Típus Halmazelem=Rekord(érték: Elemtípus, multi: Egész)
Multihalmaz(Elemtípus)=Rekord(db: Egész,
elem: Tömb(1..MaxDb:Halmazelem))
Egy felsorolásként adjuk meg a multihalmazt, annyi elemű
tömbben, ahány elemű éppen a multihalmaz (pontosabban az
első db darab elemében).
Zsakó László: Halmazok 35/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus
2020. 09. 28. 13:20
PéldaTípus Fajta=Rekord(érték: Szöveg,
multi: Egész)
Állomány=Multihalmaz(Fajta)
Változó A: Állomány
A:=Állomány(("nyúl",3),("kecske",5))
Zsakó László: Halmazok 36/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Beolvasás(Változó a: Multihalmaz(Elemtípus)):
Be: a.db [a multihalmaz elemszáma]
Ciklus i=1-től a.db-ig
Be: a.elem[i].érték,a.elem[i].multi
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a multihalmaz elemértékeinek számaszor fut le, azaz a futási idő a multihalmaz elemszámával arányos.
Zsakó László: Halmazok 37/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Kiírás(Konstans a: Multihalmaz(Elemtípus)):
Ki: a.db [a multihalmaz elemszáma]
Ciklus i=1-től a.db-ig
Ki: a.elem[i].érték,a.elem[i].multi
Ciklus vége
Eljárás vége.
Műveletigény számítása:
A ciklus a multihalmaz elemértékeinek számaszor fut le, azaz a futási idő a multihalmaz elemszámával arányos.
Zsakó László: Halmazok 38/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Üres(Változó a: Multihalmaz(Elemtípus)):
a.db:=0
Eljárás vége.
Műveletigény számítása:
Nem függ a multihalmaz elemszámától.
üres?(konstans a: Multihalmaz(Elemtípus)):
Üres?:=(a.db=0)
Eljárás vége.
Műveletigény számítása: Nem függ a multihalmaz elemszámától.
Zsakó László: Halmazok 39/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Multihalmazba(Változó a: Multihalmaz(Elemtípus),
Konstans e: Elemtípus):
i:=1
Ciklus amíg i≤a.db és a.elem[i].érték≠e
i:=i+1
Ciklus vége
Ha i≤a.db akkor
a.elem[i].multi:=a.elem[i].multi+1
különben a.db:=a.db+1; a.elem[a.db].érték:=e
a.elem[a.db].multi:=1
Eljárás vége.
Műveletigény számítása:
Arányos a multihalmaz elemszámával.Zsakó László: Halmazok 40/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
Multihalmazból(Változó a: Multihalmaz(Elemtípus),
Konstans e: Elemtípus):
i:=1
Ciklus amíg i≤a.db és a.elem[i].érték≠e
i:=i+1
Ciklus vége
Ha i≤a.db akkor
Ha a.elem[i].multi=1 akkor
a.elem[i]:=a.elem[a.db]; a.db:=a.db-1
különben a.elem[i].multi:=a.elem[i].multi-1
Eljárás vége.
Műveletigény számítása:
Arányos a multihalmaz elemszámával.Zsakó László: Halmazok 41/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
eleme(Konstans e: Elemtípus,
a: Multihalmaz(Elemtípus)):
i:=1
Ciklus amíg i≤a.db és ea.elem[i].érték
i:=i+1
Ciklus vége
eleme:=i≤a.db
Függvény vége.
Műveletigény számítása:
Arányos a multihalmaz elemszámával.
Zsakó László: Halmazok 42/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
multiplicitás(Konstans e: Elemtípus,
a: Multihalmaz(Elemtípus)):
i:=1
Ciklus amíg i≤a.db és ea.elem[i].érték
i:=i+1
Ciklus vége
Ha i≤a.db akkor multiplicitás:=a.elem[i].multi
különben multiplicitás:=0
Függvény vége.
Műveletigény számítása:
Arányos a multihalmaz elemszámával.
Zsakó László: Halmazok 43/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
benne(Konstans e: Halmazelem,
a: Multihalmaz(Elemtípus)):
i:=1
Ciklus amíg i≤a.db és e.értéka.elem[i].érték
i:=i+1
Ciklus vége
benne:=i≤a.db és e.multi≤a.elem[i].multi
Függvény vége.
Műveletigény számítása:
Arányos a multihalmaz elemszámával.
Zsakó László: Halmazok 44/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
része(Konstans a,b: Multihalmaz(Elemtípus))
i:=1
Ciklus amíg i≤a.db és benne(a.elem[i],b)
i:=i+1
Ciklus vége
része:=i>a.db
Függvény vége.
Műveletigény számítása:
A külső ciklus az A, a benne műveletben levő belső ciklus a B multihalmaz elemszámaszor fut le, azaz a futási idő a két multi-
halmaz elemszáma szorzatával arányos.
Zsakó László: Halmazok 45/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
unió(Konstans a,b: Multihalmaz(Elemtípus)):
c:=a
Ciklus i=1-től b.db-ig
j:=1
Ciklus amíg j≤a.db és
b.elem[i].értéka.elem[j].érték
j:=j+1
Ciklus vége
...
Zsakó László: Halmazok 46/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
...
Ha j>a.db akkor c.db:=c.db+1
c.elem[c.db]:=b.elem[i]
különben c.elem[j].multi:=c.elem[j].multi+
b.elem[i].multi
Ciklus vége
unió:=c
Operátor vége.
Műveletigény számítása:
A külső ciklus az A, a belső ciklus a B multihalmaz elemszámaszor fut le,
azaz a futási idő a két multihalmaz elemszáma szorzatával arányos.
Zsakó László: Halmazok 47/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
max(Konstans a,b: Multihalmaz(Elemtípus)):
c:=a
Ciklus i=1-től b.db-ig
j:=1
Ciklus amíg j≤a.db és
b.elem[i].értéka.elem[j].érték
j:=j+1
Ciklus vége
...
Zsakó László: Halmazok 48/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
...
Ha j>a.db akkor c.db:=c.db+1
c.elem[c.db]:=b.elem[i]
különben ha b.elem[i].multi>c.elem[j].multi
akkor c.elem[j].multi:=b.elem[i].multi
Ciklus vége
max:=c
Operátor vége.
Műveletigény számítása:
A külső ciklus az A, a belső ciklus a B multihalmaz elemszámaszor fut le,
azaz a futási idő a két multihalmaz elemszáma szorzatával arányos.
Zsakó László: Halmazok 49/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
metszet(Konstans a,b: Multihalmaz(Elemtípus)):
c.db:=0
Ciklus i=1-tõl a.db-ig
j:=1
Ciklus amíg j≤b.db és
b.elem[j].értéka.elem[i].érték
j:=j+1
Ciklus vége
...
Zsakó László: Halmazok 50/52
http://ikportal.inf.elte.hu:8080/ELTEInformatikaiKar/elte_ik_2.html
-
Multihalmaz típus ábrázolása
2020. 09. 28. 13:20
...
Ha j≤b.db akkor
c.db:=c.db+1; c.elem[c.db]:=a.elem[i]
Ha b.elem[j].multi
-
Halmaz, multihalmaz