💾
Informatica programma regulier
  • Het vak
  • Kernprogramma
    • Periode 1
    • Periode 2
    • Periode 3
  • Kern Programma
    • Het Internet
      • 1: What is the Internet?
      • 2: Wires, Cables & Wifi
      • 3: IP Addresses & DNS
      • 4: Packets, Routing & Reliability
      • 5: HTTP & HTML
      • 6: Encryption & Public Keys
      • 7: Cybersecurity & Crime
      • 8: How Search Works
    • Informatie
      • Presentaties
      • Les 1: Introductie in Binaire Getallen
      • Les 2: Hexadecimale Getallen
      • Les 3: Logische Operaties
      • Les 4: Digitalisering van tekst
      • Les 5: Digitalisering van beeld
      • Les 6: Digitalisering van geluid
    • HTML-CSS
      • HTML-CSS-0
        • Les 1: HTML, de basis
        • Les 2: HTML, meer over body, plaatjes en links
        • Les 3: HTML, lijsten
        • Les 4: HTML, tabellen
        • Les 5: CSS, background-color, color
        • Les 6: HTML, iframes, Youtube of maps invoegen
      • HTML-CSS-1
        • Les 1: CSS koppelen aan je HTML-pagina
        • Les 2: Fonts, lettergrootte en stijl
        • Les 3: Kleuren en achtergrondplaatje
        • Les 4: Boxmodel en borders
        • Les 5: Margin, padding en development tools
        • Les 6: Elementen selecteren: classes en id's
        • Les 7: Pseudo-classes, (hyper)links en span-element
        • Les 8: Tabellen opmaken
        • Les 9: Lijsten opmaken (menu in je pagina)
      • HTML-CSS-2
        • Les 1: Structuur van je Pagina
        • Les 2: position in CSS
        • Les 3: Inline vs Block elementen
      • Eindopdracht [PET1]
        • Publiceren op Github pages
        • Beoordeling
      • Links
    • Python
      • start
      • Python-0
        • Untitled
        • Les 1: Je eerste tekening
        • Les 2: Herhalen
        • Les 2b: Loop in Loops
        • Les 3: Functies maken
        • Les 4: Parameters
        • Les 5: Loops & Range()
      • Python-1
        • Les 1: Print & variabelen
        • Les 2: Input en datatypes
        • Les 3: Vergelijkingen
        • Les 4: Booleaanse expressies
        • Les 5: For/While loops
        • Les 6: Functies
        • Les 7: While (+teller)
      • Eindopdrachten [PET2]
        • Python Kunst
          • Les 1: Functies in Functies
          • Les 2: Meerdere turtle's
          • De eindopdracht
        • Galgje
        • Wordmind
        • Het langste woord
    • Automaten
    • Algoritme
      • Presentaties
      • Les 1: Wat is een algoritme?
      • Les 2: Sorteren
      • Les 3: Sorteer Algoritmes
      • Les 4 & 5: Toren van Hanoi
    • Databases
      • Planner V5
      • Untitled
      • 1: Inleiding
        • Wat is een database?
        • Wat is SQL?
        • Onze database
      • 2: Selectie, voorwaarden en sorteren
        • Selectie en Sorteren
          • Distinct
          • Order By
        • De WHERE Clausule
          • Operator AND en OR
          • Between
          • IN
          • Not
          • Like
          • Is Null
          • Limit
        • Opdrachten
        • Antwoorden
      • 3: Functies
        • Vragen
        • Antwoorden
      • 4: Grouperen
        • Vragen
        • Antwoorden
      • 5: Joins
        • Vragen
        • Antwoorden
      • 6: Subqueries
        • Vragen
        • Antwoorden
      • 7: Tabellen Muteren
        • Create
        • Drop
        • Opdracht
        • Antwoord
      • 8: Gegevens toevoegen
        • Insert
        • Update
        • Delete
        • Opdrachten
        • Antwoorden
      • 9: Sleutel en Verwijzingen
        • Het strokendiagram
        • Foreign Key
      • Eindopdracht [PET3]
    • Presentatie
      • Presenatieschema
      • Beoordelingsmatrix
  • Keuzemodules
    • Computernetwerken
    • Web development
    • Kunstmatige Intelligentie
    • Embedded Systems
      • Planner
      • Les 1: Wat is een Arduino
      • Les 2: Blink
      • Les 3: Schakelaars
      • Les 4: Seriële monitor
      • Les 5: Analoge Sensoren
      • Les 6: Servo - beweging
      • Les 7: LCD display
      • Eindopdracht
    • Betoog
      • Voorbeelden
      • Stappenplan
      • Bouwplan
      • Bronvermelding
      • Beoordeling matrix
    • Internet of things
      • Planner
      • Eindopdracht
      • Beoordelingsmatrix
    • De meesterproef
      • Voorbeelden
      • Beoordelingschema
  • PTA
    • Havo
      • Cohort 2020
    • Vwo
      • Cohort 2020
    • Vrijstellingen - concept
    • Eindtermen
      • Domein A: Vaardigheden
      • Domein B: Grondslagen
      • Domein C: Informatie
      • Domein D: Programmeren
      • Domein E: Architectuur
      • Domein F: Interactie
      • Domein G: Algoritmiek, berekenbaarheid en logica
      • Domein H: Databases
      • Domein I: Cognitive computing
      • Domein J: Programmeerparadigma’s
      • Domein K: Computerarchitectuur
      • Domein L: Netwerken
      • Domein M: Physical computing
      • Domein N: Security
      • Domein O: Usability
      • Domein P: User experience
      • Domein Q: Maatschappelijke en individuele invloed van informatica
      • Domein R: Computational science
Powered by GitBook
On this page
  • Bubble Sort
  • Recurssie:
  • Merge sort [vwo]
  • Opdrachten

Was this helpful?

Export as PDF
  1. Kern Programma
  2. Algoritme

Les 3: Sorteer Algoritmes

PreviousLes 2: SorterenNextLes 4 & 5: Toren van Hanoi

Last updated 4 years ago

Was this helpful?

Bubble Sort

Sorteert een rij van elementen door herhaaldelijk door de rij te lopen, opeenvolgende elementen met elkaar te vergelijken, en deze van plek te verwisselen indien de volgorde incorrect is.

Python code:

def bubbleSort(arr): 
    n = len(arr) 
  
    # Traverse through all array elements 
    for i in range(n-1): 
    # range(n) also work but outer loop will repeat one time more than needed. 
  
        # Last i elements are already in place 
        for j in range(0, n-i-1): 
  
            # traverse the array from 0 to n-i-1 
            # Swap if the element found is greater 
            # than the next element 
            if arr[j] > arr[j+1] : 
                arr[j], arr[j+1] = arr[j+1], arr[j] 
  
# Driver code to test above 
arr = [64, 34, 25, 12, 22, 11, 90] 
  
bubbleSort(arr) 
  
print ("Sorted array is:") 
for i in range(len(arr)): 
    print ("%d" %arr[i]),   

Recurssie:

Als je een bepaalde actie herhaaldelijk moet laten uitvoeren wordt vaak gebruik gemaakt van loops (for loops of while loops). Een andere aanpak is Recursie.

Stel je ziet een reclame op TV. En in die reclame zie je iemand naar TV kijken. Op de TV in de reclamespot zie je weer iemand naar TV kijken. Het herhaaldelijk iemand naar een TV kijken wordt ook wel recursie genoemd. Een ander voorbeeld van recursie zie je ook bij de cacaobus van Droste, waarop een verpleegster te zien is, die op een dienblad een cacaobus heeft, waarop een verpleegster te zien is, die .... etc..Dit noemt men soms ook het Droste effect.

Merge sort [vwo]

Divide and conquer algoritme Divide: Verdeel het probleem in subproblemen van hetzelfde type. Conquer: Los de subproblemen op bijv. met behulp van recursie. Combine: Combineer de antwoorden van de subproblemen.

# Python program for implementation of MergeSort 
  
# Merges two subarrays of arr[]. 
# First subarray is arr[l..m] 
# Second subarray is arr[m+1..r] 
def merge(arr, l, m, r): 
    n1 = m - l + 1
    n2 = r- m 
  
    # create temp arrays 
    L = [0] * (n1) 
    R = [0] * (n2) 
  
    # Copy data to temp arrays L[] and R[] 
    for i in range(0 , n1): 
        L[i] = arr[l + i] 
  
    for j in range(0 , n2): 
        R[j] = arr[m + 1 + j] 
  
    # Merge the temp arrays back into arr[l..r] 
    i = 0     # Initial index of first subarray 
    j = 0     # Initial index of second subarray 
    k = l     # Initial index of merged subarray 
  
    while i < n1 and j < n2 : 
        if L[i] <= R[j]: 
            arr[k] = L[i] 
            i += 1
        else: 
            arr[k] = R[j] 
            j += 1
        k += 1
  
    # Copy the remaining elements of L[], if there 
    # are any 
    while i < n1: 
        arr[k] = L[i] 
        i += 1
        k += 1
  
    # Copy the remaining elements of R[], if there 
    # are any 
    while j < n2: 
        arr[k] = R[j] 
        j += 1
        k += 1
  
# l is for left index and r is right index of the 
# sub-array of arr to be sorted 
def mergeSort(arr,l,r): 
    if l < r: 
  
        # Same as (l+r)//2, but avoids overflow for 
        # large l and h 
        m = (l+(r-1))//2
  
        # Sort first and second halves 
        mergeSort(arr, l, m) 
        mergeSort(arr, m+1, r) 
        merge(arr, l, m, r) 
  
  
# Driver code to test above 
arr = [12, 11, 13, 5, 6, 7] 
n = len(arr) 
print ("Given array is") 
for i in range(n): 
    print ("%d" %arr[i]), 
  
mergeSort(arr,0,n-1) 
print ("\n\nSorted array is") 
for i in range(n): 
    print ("%d" %arr[i]), 
  
# This code is contributed by Mohit Kumra 

Opdrachten

Probeer deze sorteer algortimes op papier stap voor stap uit te schrijven. [kan een vraag op de toets zijn]