Presentation laddar. Vänta.

Presentation laddar. Vänta.

Övning 4 www.nada.kth.se/~mhj/tilda.

Liknande presentationer


En presentation över ämnet: "Övning 4 www.nada.kth.se/~mhj/tilda."— Presentationens avskrift:

1 Övning 4

2 Problemträd Sortering
Bredden först Djupet först Sortering

3 Problemträd

4 Problem: Problemträd: 4 - 4 * 4 + 4 - 4 + 4 * 4 - 4 + 4 * 4 - 4 + 4 *
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 * * = 100 Problemträd: 4 4 - 4 * 4 + 8 16 4 - 4 + 4 * 4 - 4 + 4 * 4 - 4 + 4 * -4 4 4 12 32 12 20 64

5 Problem: Problemträd:
En teknolog som glömt sin tresiffriga portkod tryckte sej igenom alla tusen kombinationer så här: 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 1 2 3 4 5 6 7 8 9 0001 0002 0003 0004 0005 0006 0007 0008 0009 1 2 3 4 5 6 7 8 9 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059

6 Sökning i problemträd Bredden först

7 Sökning i problemträd Djupet först

8 Hitta lösning på minimalt avstånd
Bredden först

9 Hitta lösning på minimalt avstånd
Djupet först

10 Hitta en lösning då de finns långt ner i trädet
Bredden först

11 Hitta en lösning då de finns långt ner i trädet
Djupet först

12 Bredden först görs oftast med en kö
1 1 2 2 3 3 4 4 5 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

13 Djupet först görs oftast med rekursion
1 1 2 2 3 4 5 5 6 6 7 8 9 10 11 12 13 14 14 15 15 16 16 17 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

14 Problem: 4 - 4 * 4 + 4 - 4 + 4 * 4 - 4 + 4 * 4 - 4 + 4 * Kö 4 8 16 -4
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 * * = 100 4 4 4 - 4 * 4 + 8 8 16 16 4 - 4 + 4 * 4 - 4 + 4 * 4 - 4 + 4 * -4 -4 4 4 12 32 12 20 64 4 8 16 -4 4 4 12 32 12 20 64 -8 -16

15 Problem: En teknolog som glömt sin tresiffriga portkod tryckte sej igenom alla tusen kombinationer så här: 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 1 2 3 4 5 6 7 8 9 0001 0002 0003 0004 0005 0006 0007 0008 0009 1 2 3 4 5 6 7 8 9 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059

16

17 Sortering

18 Quicksort pivot pivot 1 1 5 2 3 9 2 3 3 3 4 2 9 4 4 4 2 9 7 1 5 5 10 6 2 9 8 7 1 Komplexiteten blir i allmänhet O(n log n) pivot pivot 1 1 2 2 3 4 5 6 7 8 9 10 Komplexiteten blir O(n2) om redan sorterad

19 Komplexitet: O(m log m + n)
Röster för fred :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? 1 2 3 4 5 6 7 8 9 10 m 1 2 3 4 5 6 7 8 9 10 Komplexitet: O(m log m + n)

20 Dokusåpan :7 En 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? 1 4 5 2 3 2 6 4 5 7 6 3 8 7 8 1 9 9 10 10 4 5 6 7 8 9 10 9 10 Antal jämförelser: (10-1) + (2 + 1) = 12 Antal jämförelser: (243-1) + (2 + 1) = 245


Ladda ner ppt "Övning 4 www.nada.kth.se/~mhj/tilda."

Liknande presentationer


Google-annonser