Övning 4 nada.kth.se/~mhj/tilda
DESCRIPTION
Övning 4 www.nada.kth.se/~mhj/tilda. Problemträd Bredden först Djupet först Sortering. Problemträd. -. 4. *. 4. +. 4. -. *. -. *. -. +. +. +. *. 4. 4. 4. 4. 4. 4. 4. 4. 4. Problem: - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/1.jpg)
Övning 4
www.nada.kth.se/~mhj/tilda
![Page 2: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/2.jpg)
ProblemträdBredden förstDjupet först
Sortering
![Page 3: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/3.jpg)
Problemträd
![Page 4: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/4.jpg)
Problem:Erhåll talet (100) på kortast sätt med hjälp av talet fyra (4) och de tre räknesätten addition (+), subtraktion (-) och multiplikation (*).
Exempel: 4 * 4 + 4 + 4 * 4 + 4 = 100
Problemträd:
4
8 160
12 324 20 64124 0-4
44 4
4 4 4 4 4 4 4 4 4
![Page 5: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/5.jpg)
Problem:En teknolog som glömt sin tresiffriga portkod tryckte sej igenom alla tusen kombinationer så här:
000001002003004005006007008009010011012...999
Det kräver 3000 tryckningar. Man kan dock börja med 000 och sedan klara sig med 999 tryckningar om man har en supersmart sekvens där varje tresiffrigt tal förekommer någonstans. Hur ser sekvensen ut?
Problemträd: 000
0005 0006 0007 0008 00090004000300020001
00055 00056 00057 00058 0005900054000530005100050 00052
54321 9876
5 98760 4321
![Page 6: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/6.jpg)
Sökning i problemträd
Bredden först
![Page 7: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/7.jpg)
Djupet först
Sökning i problemträd
![Page 8: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/8.jpg)
Hitta lösning på minimalt avstånd
Bredden först
![Page 9: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/9.jpg)
Hitta lösning på minimalt avståndDjupet först
![Page 10: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/10.jpg)
Hitta en lösning då de finns långt ner i trädetBredden först
![Page 11: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/11.jpg)
Hitta en lösning då de finns långt ner i trädetDjupet först
![Page 12: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/12.jpg)
1
3 42
9875 131211106
27242116 38333018 31282519 4039373422 232014 3532292615 36
1
2
5
3 4
Bredden först görs oftast med en kö
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Kö
17
6
17 18
![Page 13: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/13.jpg)
1
3 42
9875 131211106
27242116 38333018 31282519 4039373422 232014 3532292615 36
1
2
5
Djupet först görs oftast med rekursion
17
6
1614 15 17
![Page 14: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/14.jpg)
Problem:Erhåll talet (100) på kortast sätt med hjälp av talet fyra (4) och de tre räknesätten addition (+), subtraktion (-) och multiplikation (*).
Exempel: 4 * 4 + 4 + 4 * 4 + 4 = 100
4
8 160
12 324 20 64124 0-4
44 4
4 4 4 4 4 4 4 4 4
Kö
4 0 8 16 -4 4 0 4 12 32 12 20 64 -8 0 -16
4
0 8 16
-4
![Page 15: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/15.jpg)
Problem:En teknolog som glömt sin tresiffriga portkod tryckte sej igenom alla tusen kombinationer så här:
000001002003004005006007008009010011012...9999
Det kräver 3000 tryckningar. Man kan dock börja med 000 och sedan klara sig med 999 tryckningar om man har en supersmart sekvens där varje tresiffrigt tal förekommer någonstans. Hur ser sekvensen ut?
000
0005 0006 0007 0008 00090004000300020001
00055 00056 00057 00058 0005900054000530005100050 00052
54321 9876
5 98760 4321
![Page 16: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/16.jpg)
000100200300400500600700800901101201301401501601701801902102202302402502602702802903103203303403503603703803904104204304404504604704804905105205305405505605705805906106206306406506606706806907107207307407507607707807908108208308408508608708808909109209309409509609709809911121131141151161171181191221231241251261271281291321331341351361371381391421431441451461471481491521531541551561571581591621631641651661671681691721731741751761771781791821831841851861871881891921931941951961971981992223224225226227228229233234235236237238239243244245246247248249253254255256257258259263264265266267268269273274275276277278279283284285286287288289293294295296297298299333433533633733833934434534634734834935435535635735835936436536636736836937437537637737837938438538638738838939439539639739839944454464474484494554564574584594654664674684694754764774784794854864874884894954964974984995556557558559566567568569576577578579586587588589596597598599666766866967767867968768868969769869977787797887897987998889899900
![Page 17: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/17.jpg)
Sortering
![Page 18: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/18.jpg)
Quicksort
5 9 3 4 7 10 6 2 8 1
pivot
93 94 92 7151 51
pivot
4232 3 42
Komplexiteten blir i allmänhet O(n log n)
6 7 98 1051 3 42
pivot
1
pivot
2
Komplexiteten blir O(n2) om redan sorterad
![Page 19: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/19.jpg)
Röster för fred 030426:7 Körledaren förvarar sina noter sorterade i en tjock pärm. Till varje repetition plockar han ut några noter och efteråt sorteras de in i pärmen igen med quicksort. Som pivotelement väljs elementet längst till höger i varje delvektor. I kören finns en tildaelev som påpekar att det går att göra mycket enklare och effektivare. Hur då? Ange komplexiteten då m noter plockas ut från den n tjocka pärmen?
6 98 10541 2 73
m
6 98 10541 2 73
Komplexitet: O(m log m + n)
![Page 20: Övning 4 nada.kth.se/~mhj/tilda](https://reader036.vdocuments.pub/reader036/viewer/2022062304/56812f93550346895d950f97/html5/thumbnails/20.jpg)
Dokusåpan 040313:7En populär kanadensisk dokusåpa söker deltagare. Flera (243 personer) vill vara med och arrangörerna sorterar de sökande i en lång rad efter näslängd. När programledaren öppnar dörren för att släppa in den första sökanden får en handfull av dem som står först i kön syn på honom och blir så skraja att de springer och gömmer sig i kön. Beskriv en smart algoritm för att sortera om kön. Antag att det visade sig vara tre personer som blev skrämda, hur många näsjämförelser behövs det då med din algortitm för att sortera om kön?
6 9 10541 2 73 86 9 1054 7 832 1
654 7 8 9 10
Antal jämförelser: (10-1) + (2 + 1) = 12Antal jämförelser: (243-1) + (2 + 1) = 245