DENNE WIKI-SIDEN ER UTDATERT FRA OG MED HØST 2019. BRUK BLACKBOARD-SIDENE FOR ITGK FOR OPPDATERT INFORMASJON.

Ingen henvendelser angående wiki-sidene til fagstaben vil bli besvart



Læringsmål:

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

Pensum:

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


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.


Det skal tas et undergruppebilde. Det er så få medlemmer at de står på en rekke ved siden av hverandre. Det bestemmes at den laveste personen skal stå til venstre mens den høyeste skal stå til høyre.

a) 

Skriv funksjonen listSort(list) som sorterer tallene i en liste. Den skal ta in list som parameter og returnere sortedList

Pseudokode: Velger første tall: er det større 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.

Eksempel på kjøring:

       mis =

       5 1 23 12 9

       >> sortedList = listSort(mis)

       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.



Torkel-Georg skal ta et gruppebilde av noen studenter. Det er mange medlemmer og derfor må de stå på rekke og rad. Han blir gitt en liste med høyder og navn på medlemmene som en matrise. 

c)

Til å begynne med bestemmer han seg for å sortere hver rad i stigende rekkefølge.  

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
       21  10  29  3

        >> sortedLists = sortLists(misMatrix)

       sortedLists =

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

 

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

d)

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).

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: