Contactmoment
17 maart
slides.com/jod/pt_maa_17
Docent: Jo Devriendt
Assistent: Ann Philips
Coördinator: Joost Vennekens
voornaam.achternaam@kuleuven.be
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Contactmoment 17 maart
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
Onderwerpen:
- 11a. Selection sort
- 11b. Quicksort
- 11c. Merge sort
Uitsmijter om 10:50:
Algemeen vs specifiek in een worst-case scenario
Algemeen vs specifiek
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
- Algemeen: alle gevallen die aan een definitie voldoen
- Specifiek: een geval dat nog steeds aan de definitie voldoet, maar waar je meer informatie hebt
Meer informatie laat toe om in een specifiek geval een uitzondering op de algemene regel te bekomen
Bijvoorbeeld: om een brug te bouwen moet je aan bepaalde structurele eisen voldoen. Bvb. er moeten voldoende steunpilaren per meter brug zijn. Maar als je speciaal beton of staal gebruikt, kun je wegkomen met minder steunpilaren per meter brug.
Algemeen
Specifiek
Algemeen vs specifiek
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
- In het algemeen kan je niet sneller sorteren dan in
stappen - Maar stel dat we weten dat we getallen tussen 0 en 999 aan het sorteren zijn. Er kunnen er nog steeds miljoenen zijn - er zijn heel veel dubbels.
- Dan kan je in O(n) sorteren mbv. counting sort
Counting sort
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
#include <stdio.h>
#define N 8
#define K 1000
int main() {
int a[N] = {5,3,1,7,2,6,4,5};
int counts[K];
for(int i=0; i<K; ++i){
counts[i]=0;
}
for(int i=0; i<N; ++i){
counts[a[i]] += 1;
}
for(int i=0; i<K; ++i){
for(int j=0; j<counts[i]; ++j){
printf("%d ", i);
}
}
printf("\n");
}
$ ./a.out
1 2 3 4 5 5 6 7
Algemeen vs specifiek
Programmeertechnieken [B-KUL-YI0855]
De Nayer, IIW, E-ICT, 2Ba + schakel, 2020-2021
- In het algemeen kan je niet sneller sorteren dan in
stappen - Maar stel dat we weten dat we getallen tussen 0 en 999 aan het sorteren zijn. Er kunnen er nog steeds miljoenen zijn - er zijn heel veel dubbels.
- Dan kan je in O(n) sorteren mbv. counting sort
- Counting sort werkt niet voor alle sorteerproblemen, en is dus geen weerlegging van de algemene regel
Contactmoment 17 maart
By Jo Devriendt
Contactmoment 17 maart
- 702