Læreplankoblet

Sortert

Aktivitet

Spillekort som er lagt usortert utover et bord.

Finn fram eller lag nokre nummererte kort, mellom 10 og 20 er nok. Du kan for eksempel bruke alle korta av éin sort i ein kortstokk (hjarter, ruter, kløver, spar).

Bland korta og legg dei på bordet, sorterte i stigande rekkjefølgje.

Kva metode brukte du for å leggje dei i stigande rekkjefølgje?

Kan du kome på ein annan metode å sortere korta på?

Nedanfor er det gjort greie for nokre sorteringsalgoritmar som du kan prøve. Det kan vere lurt å leggje alle korta i ei rad på bordet, for at det skal vere enkelt å halde oversikt over det som skjer.

Bubble sort

  • Samanlikn dei to første korta. Byt om plasseringa deira dersom dei ligg i feil rekkjefølgje.
  • Deretter samanliknar du det andre og det tredje kortet. Byt om plasseringa deira dersom dei ligg i feil rekkjefølgje.
  • Fortset slik gjennom heile rada med kort.
  • Når du har gått gjennom alle korta, let du den nye rekkjefølgja liggje og begynner framanfrå igjen.
  • Gjenta dette heilt til du kan gå gjennom heile rada utan at nokre kort må byte plass.

Shuttle sort

  • Første gjennomgang: Samanlikn dei to første korta, og byt om plasseringa deira dersom det er nødvendig.
  • Andre gjennomgang: Samanlikn det andre og det tredje kortet, og byt om plasseringa deira dersom det er nødvendig. Samanlikn og byt deretter dei to første korta dersom det er nødvendig.
  • Tredje gjennomgang: Samanlikn det tredje og det fjerde kortet, og byt om plasseringa deira dersom det er nødvendig. Samanlikn og byt deretter om det andre og det tredje kortet dersom det er nødvendig. Samanlikn og byt deretter om det første og det andre kortet dersom det er nødvendig.
  • Fortset på same måten gjennom heile rada.

Selection sort

  • Gå gjennom rada med kort heilt til du finn einaren (ess om du brukar kortstokk). Byt dette kortet med det første kortet i rada.
  • Deretter går du gjennom rada med kort til du finn toaren. Byt dette kortet med det andre kortet i rada.
  • Gå gjennom rada med kort til du finn trearen. Byt dette kortet med det tredje kortet i rada.
  • Fortset slik med resten av korta.

Insertion sort

  • Legg ned det første kortet.
  • Legg det andre kortet til høgre eller til venstre for det første kortet, avhengig av om talverdien er høgare eller lågare.
  • Legg det tredje kortet på rett plass i forhold til dei to første korta. Lag plass mellom dei to første korta dersom det er nødvendig.
  • Plasser det fjerde kortet korrekt i forhold til dei tre første korta. Lag plass mellom nokre av korta dersom det er nødvendig.
  • Fortset slik til alle korta er sorterte i rekkjefølgje.

Quick sort

  • Legg ned det første kortet.
  • Sorter resten av korta i ein bunke som inneheld alle korta med lågare talverdi enn det første, og ein bunke som inneheld alle korta med høgare talverdi enn det første.
  • Legg det første kortet mellom dei to mindre bunkane med kort.
  • Sorter dei mindre bunkane på same måten.
  • Fortset til det ikkje er igjen fleire bunkar med kort.

Prøv kvar algoritme nokre gonger, og hald oversikt over kor mange «trekk» eller «byte» du utfører. Du kan også samarbeide med ein annan og konkurrere om å sortere raskast.

Om du ikkje heilt forstår nokre av dei skriftlege algoritmane, kan du sjå på filmane under Starthjelp, som viser algoritmane i praksis.

Her er nokre spørsmål du kan arbeide med:

  • Kva for ein algoritme er gjennomsnittleg raskast?
  • Kva er det verst tenkjelege utfallet for kvar algoritme? Kva for eit utgangspunkt vil gi flest «trekk» eller «byte»?
  • Kor lang tid vil det ta å sortere ved verst tenkjelege utgangspunkt?
  • Dersom du kan programmere litt, kan du lage eit program som utfører algoritmar. Kva for ein algoritme ville du valt å programmere for å lage det mest mogleg effektive programmet? Kan du få programmet til å halde oversikt over kor mange «trekk» eller «byte» det gjer i dei forskjellige algoritmane?

Starthjelp

Bubble sort

Shuttle sort

Selection sort

Insertion sort

Quick sort

Lærarrettleiing

Kvifor arbeide med denne oppgåva?

Denne oppgåva tek utgangspunkt i konteksten sortering av spelekort for å gjere elevane nysgjerrige på effektiviteten til forskjellige sorteringsalgoritmar.

Ved å undersøkje kor lang tid kvar metode tek ved verst/best mogleg utgangspunkt, kan oppgåva brukast til å introdusere og belyse meir eller mindre komplekse algoritmar. Det kan også vere ein programmeringsaktivitet, der det er naturleg å bruke og sortere lister.

Når elevane får møte mange forskjellige algoritmar som har same funksjon, håpar vi at dei vil reflektere over fordelane med å ha mange forskjellige verktøy i den «matematiske verktøykassen» når dei skal løyse problem.

Mogleg tilnærming

Kvar elev treng alle korta frå ess til konge av éin sort i ein kortstokk. Alternativt kan dei bruke andre nummererte kort. «Bland korta dykkar og legg dei i rekkjefølgje frå ess til konge. Sjå på korleis andre sorterer korta sine. Gjer de det på same måten? Kor effektiv er måten din?»

Deretter kan du vise filmane under Starthjelp, eller dele ut kopioriginalen. Elevane bør prøve å forstå algoritmane før dei prøver dei sjølve.

«Gjennomfør kvar algoritme nokre gonger for å bli betre kjend med han. Deretter vel du to algoritmar som du vil samanlikne. Kva for ein er raskast? Kvifor? Kan du plassere korta dine i det verst tenkjelege utgangspunktet for kvar av dei to algoritmane, for å få det til å ta så lang tid som mogleg?»

Gi elevane tid til å utforske både spørsmåla nedanfor og spørsmåla i oppgåva eller kopioriginalen:

  • Kva for ein algoritme synest du er gjennomsnittleg raskast?
  • Kva er det verste tenkjelege utfallet for kvar algoritme? Kva for eit utgangspunkt vil gi flest «trekk» eller «byte»?
  • Kor lang tid vil det ta å sortere ved verst tenkjelege utgangspunkt?

Diskuter funn og oppdagingar saman med heile klassen.

Mogleg utviding

Utfordre elevane til å bruke ein pseudokode eller eit programmeringsspråk dei kjenner, for å uttrykkje algoritmane.

Mogleg støtte

Introduser éin algoritme om gongen. Denne nettsida https://www.toptal.com/developers/sorting-algorithms kan visualisere algoritmane, og kan hjelpe elevane til å forstå dei forskjellige metodane.

Ressursen er utviklet av NRICH

9,10