INF 295 Algoritmer og datastrukturer Forelesning 1 kapittel

  • Slides: 8
Download presentation
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug

INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)

Praktiske forhold l l l Lærebok Obligatoriske oppgaver Ukeoppgaver Hjelpelærer (faglærer) E-postliste / Class.

Praktiske forhold l l l Lærebok Obligatoriske oppgaver Ukeoppgaver Hjelpelærer (faglærer) E-postliste / Class. Fronter Arbeidsformer

Mål for kapittelet l l Programytelse på store og små datamengder Oppsummering av matematisk

Mål for kapittelet l l Programytelse på store og små datamengder Oppsummering av matematisk bakgrunn Rekursjon Viktige trekk ved Java

Hva handler boka om l l Mange programmeringsproblemer kan løses på forskjellige måter -

Hva handler boka om l l Mange programmeringsproblemer kan løses på forskjellige måter - med forskjellige algoritmer Algoritmene har ulik effektivitet l l l Et problem kan løses på sekunder eller på dager avhengig av algoritmen Store datamengder fører lett til problemer Det er m. a. o. ikke nok at algoritmen virker - den må også være rask nok -- vi må kunne estimere kjøretid (uten å programmere), foresøke å lage raskere algoritmer, finne flaskehalser m. m.

eksempler l gjenganger: Selection Problem - finn k'de høyeste (eller laveste) verdi i en

eksempler l gjenganger: Selection Problem - finn k'de høyeste (eller laveste) verdi i en mengde A l l l Sorter A og finn k'de element (1. 1) Sorter første k i A, deretter innstikk av eventuelle (1. 1) Quickselect (7. 7. 6, Hoare ca. 1961) raskere Quickselect (10. 2. 3) ordpusler, dronningproblemet, . . . oppgave: Lag den enkle varianten av selection.

Matematisk repetisjon (fra diskret matematikk) l l l Potenser Logaritmer Rekker Modulus-aritmetikk Bevis l

Matematisk repetisjon (fra diskret matematikk) l l l Potenser Logaritmer Rekker Modulus-aritmetikk Bevis l l Induksjonsbevis Bevis ved selvmotsigelse

Kort repetisjon av rekursjon (fra videreg. prog. ) Direkte rekursjon har vi når en

Kort repetisjon av rekursjon (fra videreg. prog. ) Direkte rekursjon har vi når en metode kaller seg selv l l l Hva er så indirekte rekursjon Gir ofte enkle algoritmer Kan være ineffektivt (når samme beregning gjentas i ulike rekursjonskall) Kan være umulig (ved stor rekursjonsdybde)

Regler for rekursjonsalgoritmer l Regler 1. 2. 3. 4. Basistilfelle som kan løses uten

Regler for rekursjonsalgoritmer l Regler 1. 2. 3. 4. Basistilfelle som kan løses uten rekursjon må finnes Gjør framgang mot basistilfellet Anta at alle rekursive kall virker Rentesrente regelen - Dupliser aldri arbeid ved å gjenta samme løsning i separate rekursive kall.