Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Include Page
itgk:ITGK - Meny
itgk:ITGK - Meny

Læringsmål:

  • For-løkker
  • While-løkker
  • Funksjoner

Pensum:

  • 5.1 - The FOR loop
  • 5.3 - While loops (star)(star)
  • Kap 3.7
  • Kap 5.1


I denne oppgaven skal man ikke benytte seg av den innebygde funksjonen sort, men bruk den gjerne for å påse at den selvskrevne koden fungerer.

...

Pseudokode: Velger første tall: er det større en enn det neste tallet? Hvis ja: bytt plass. Gå så til tall to. Større enn neste tall? Ja: bytt plass. Gjenta prosedyren til man har gått gjennom listen uten en eneste bytting. 
Denne sorteringsalgoritmen kalles Bubble sort og slike algoritmer er av spesiell interesse innen IT.

...

       5 1 23 12 9

       >> sortedMis sortedList = listSort(mis)

       sortedMis  sortedList =

       1 5 9 12 23

b)

Skriv funksjonen insertionSort(list). Dette er en algoritme som finner det største tallet i en rekke og plasserer det helt til venstre i en ny liste. Deretter fjernes tallet fra den opprinnelige listen. Operasjonen gjentas til alle tall er flyttet over i den nye listen, som nå er sortert. Denne funksjonen skal også returnere sortedList. Mer informasjon finnes her.

...

Lag funksjonen sortLists(matrix). Denne sorterer elementene i hver rad i en "liste av rader" (matrise), og returnerer den sorterte matrisen, sortedLists.  

Eksempel på kjøring:

       misMatrix =

       5   2   4   7
       41 23 23 14 23  23  14
       21 10 29 3 10  29  3

        >> sortedMis sortedLists = sortLists(misMatrix)

       sortedMis  sortedLists =

       2   4   5   7
       14 23 23 41 23  23  41
       3   10 21 29 21  29

 

Kameraet ser innover mot de høyeste toppene. Slik ble ett av resultatene av sorteringen til Torkel-Georg:

...

Torkel-Georg innser at dette var en dårlig utførelse og forsøker seg på ny. 
For repetisjon skal det lages en funksjon sortMatrix(matrix). Den skal returnere en sortert matrise med laveste element i (1,1) og høyeste i (n,m eller siste rad, siste kolonne).

...

languagenone

...

Eksempel på kjøring: 

        

              >> sortedMatrix = sortMatrix(misMatrix)

       sortedMatrix =

       2   3   4   5
       7   10  14  21
       23  23  29  41

Den nye sorteringen ser slik ut etter en av hans sesjoner: