Sorteringsövningar

Svårighetsgrad:

Det här är samarbetsövningar som handlar om att sortera efter ordning på deltagarnas förnamn. 

All data som matas in i en dator, vad den än innehåller, behöver sorteras för att bli till information som vi kan använda. Programmerare använder sig därför av olika sorteringsalgoritmer för att sortera data i ordnade listor.

Data som ligger oordnat, slumpmässigt, är ofta svårt för en människa att begripa. Medan sorterad data, information, är sådant som vi kan använda oss av och förstå.

Jämför till exempel med hur alla telefonnummer är ordnade i listan för kontakter i din telefon. Om de hade hamnat slumpmässigt i listan, hade du inte kunnat hitta rätt nummer när du behöver det. Nu är de sorterade efter namn, i bokstavsordning, så att du enkelt kan söka på och hitta dem!

1. Sortering av förnamn

Det här är en bra övning när du har en grupp som är nya för varandra och som du vill ska lära känna varandra. Det finns inga rätt eller fel i hur gruppen sorterar, så länge de får fram rätt ordning. De får så att säga hitta på sin egen algoritm för att lösa sorteringen!

 Så här gör ni:

  1. Presentera er för varandra med förnamn.
  2. Samarbeta för att ställa er i bokstavsordning från A-vänster till Ö-höger. Ni får själva välja hur ni ska göra för att så fort som möjligt sortera er i rätt ordning. Om flera personer börjar på samma bokstav, går ni vidare till nästa bokstav i namnet (t ex Sam står före Siri).
  3. När ni är klara, säg era namn i bokstavsordning från A-Ö och kontrollera att ordningen stämmer.

2. Sortera och slumpa

Denna övning går att göra efter att ni en gång har sorterat förnamn med övningen ovan. Om ni behöver en snabb övning till exempel som paus från skärmen, och för att få en grupp att sträcka på benen, så kan ni göra denna.

Så här gör ni:

  1. Slumpa: När du ropar ”slumpa” ska gruppen ställa sig upp från sina platser och snabbt hitta en ny plats, helt slumpmässigt.
  2. Sortera: När du ropar ”sortera” ska gruppen ställa sig upp och ordna sig i en rad med förnamnen sorterade från A-vänster till Ö-höger. Därefter får de sätta sig på nya platser i bokstavsordning.

Du får gärna säga åt gruppen att övningarna ska gå undan! Ge dem en bestämd tid om du vill och om det lämpar sig för gruppen. 

3. Bubbelsortering

Bubbelsortering är en enkel men inte så väldigt effektiv algoritm för att sortera data. Här kan du titta på en animering av hur algoritmen fungerar för att sortera siffror. 

Den här övningen går att göra med mindre eller större grupper. Du som handledare kan behöva vara med och guida i hur algoritmen ska gå till, åtminstone första gången den görs.

Så här gör ni:

  1. Nu ska deltagarna få sortera sig efter förnamn med hjälp av bubbelsortering! Alla deltagarna ställer sig på en rad, eller i en cirkel, i slumpmässig ordning.
  2. Handledaren pekar på de två första deltagarna, som då får jämföra sina förnamn och komma överens om ifall de behöver byta plats eller inte. Om de står i rätt ordning (A-Ö), står de bara kvar. Om de står i fel ordning får de byta plats. 
  3. Handledaren pekar nu på deltagare 2 och 3, som får jämföra förnamn på samma sätt. Därefter fortsätter algoritmen vidare, ett steg i taget. 
  4. När ni har nått fram till de två sista barnen börjar handledaren om från början. Kör algoritmen på nytt genom hela raden eller cirkeln av deltagare.
  5. När handledaren kan gå en hel runda utan att några deltagare behöver byta plats är sorteringen klar!

4. Quicksort

Quicksort är en snabb och effektiv algoritm för att sortera stora mängder data. Du kan titta på en animering av hur algoritmen fungerar i ett program som sorterar staplar i olika höjd på Wikipedia

Det här är en klurigare sorteringsövning av deltagarna efter förnamn. Övningen behöver en fokuserad grupp och att du som handledare guidar genom övningen. Gå igenom övningen i förväg så att du känner dig bekväm med den.

Tidsåtgång: beror på antal deltagare

  1. Alla deltagarna ställer sig på en rad i slumpmässig ordning. Välj ut en person, antingen helt slumpmässigt eller välj en med ett förnamn med ett namn någonstans i mitten mellan A-Ö.  Skulle den personen vara data i en lista, skulle den kallas för pivotelement.
  2. Ordna om raden så att alla personer vars namn börjar med en bokstav före pivotelementet ställer sig till vänster om denna, och så att alla personer vars namn börjar med en bokstav efter pivotelementet ställer sig till höger om denna. Pivotelementet står kvar.
  3. Repetera algoritmen så många gånger som det behövs, till dess alla står i bokstavsordning.  Att en algoritm upprepar sig själv, eller anropar sig själv flera gånger, kallas för att det är en rekursiv algoritm. 

 Exempel:

Sorteringsalgoritm Quicksort

  1. Alla deltagarna ställer sig på en rad i slumpmässig ordning. Vi ställer Leia i mitten som pivotelement. Kör algoritmen: Mario och Amir får byta plats så att Mario hamnar till höger om Leia (bokstav efter L) och Amir till vänster om Leia (bokstav före L).
  2. På vänster sida gör vi Emma till pivotpunkt och på höger sida gör vi Siri till pivotpunkt. Repetera algoritmen: Alex och Dina får ställa sig till vänster om Emma. Sam får ställa sig till vänster om Siri. De andra står kvar.
  3. Nu får Alex bli pivotpunkt på vänster sida om Emma. Mellan Emma och Leia finns ingen person kvar, så där behövs ingen ny pivotpunkt. Till vänster om Siri gör vi Sam till pivotpunkt, och det behövs ingen ny för Siris högra sida. Repetera algoritmen: Amir flyttar sig till höger om Alex. Alla andra står kvar på sina platser. Nu står alla i bokstavsordning!
Har du kommentarer till materialet på den här sidan? Mejla info@kodcentrum.se