What's the fastest way to alphabetize your bookshelf? - Chand John

3,890,933 views ・ 2016-11-28

TED-Ed


Dubbelklik op de Engelse ondertitels hieronder om de video af te spelen.

Vertaald door: Tahlia Flora
00:06
You work at the college library.
0
6911
2266
Je werkt in de mediatheek.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
De middag verloopt rustig
00:11
when suddenly a shipment of 1,280 different books arrives.
2
11397
6614
totdat er plotseling
1.280 verschillende soorten boeken worden gebracht.
De boeken worden in een lange kaarsrechte rij afgeleverd,
00:18
The books have been dropped of in one long straight line,
3
18011
3679
00:21
but they're all out of order,
4
21690
1598
maar ze staan niet op alfabet
00:23
and the automatic sorting system is broken.
5
23288
3743
en de automatische sorteermachine is buiten gebruik.
Tot overmaat van ramp start morgen het nieuwe schoojaar
00:27
To make matters worse, classes start tomorrow,
6
27031
2636
00:29
which means that first thing in the morning,
7
29667
2338
en dat betekent dat morgenvroeg
drommen studenten op zoek gaan naar deze boeken.
00:32
students will show up in droves looking for these books.
8
32005
4552
00:36
How can you get them all sorted in time?
9
36557
2936
Hoe ga je ze zo snel mogelijk ordenen?
00:39
One way would be to start at one end of the line with the first pair of books.
10
39493
5286
Begin aan de linkerkant met het eerste aantal boeken.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Als de eerste twee boeken op alfabetische volgorde staan, laat ze dan zo.
00:48
Otherwise, swap them.
12
48626
2294
Zoniet, ruil ze dan om.
00:50
Then, look at the second and third books,
13
50920
2296
Kijk vervolgens naar het tweede en derde boek,
00:53
repeat the process,
14
53216
1663
doe nu precies hetzelfde
00:54
and continue until you reach the end of the line.
15
54879
3056
en herhaal dit tot het einde van de rij.
00:57
At some point, you'll come across the book that should be last,
16
57935
3250
Ergens kom je het boek tegen die op de laatste plek hoort te staan,
01:01
and keep swapping it with every subsequent book,
17
61185
3525
ruil deze steeds om met elk daaropvolgende boek,
01:04
moving it down the line until it reaches the end where it belongs.
18
64710
4570
richting het eind van de rij totdat het op de juiste plek staat.
01:09
Then, start from the beginning and repeat the process
19
69280
2945
Begin vanaf het begin en herhaal het proces
01:12
to get the second to last book in its proper place,
20
72225
3285
om het een-na-laatste boek op de juiste plek te krijgen
01:15
and keep going until all books are sorted.
21
75510
3311
en ga zo door totdat alle boeken geordend zijn.
01:18
This approach is called Bubble Sort.
22
78821
3041
Dit heet de bubble-sort-methode.
01:21
It's simple but slow.
23
81862
2294
Het is een simpel maar traag proces.
01:24
You'd make 1,279 comparisons in the first round,
24
84156
5175
Je vergelijkt 1.279 boeken in de eerste ronde,
01:29
then 1,278, and so on,
25
89331
4292
daarna 1.278 en zo verder,
01:33
adding up to 818,560 comparisons.
26
93623
4919
wat resulteert in 818.560 vergelijkingen.
01:38
If each took just one second, the process would take over nine days.
27
98542
5731
Als elke vergelijking één seconde in beslag neemt,
duurt het proces ruim negen dagen.
01:44
A second strategy would be to start by sorting just the first two books.
28
104273
4296
Een tweede strategie is om alleen de eerste twee boeken te ordenen.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Pak dan het derde boek en vergelijk deze met het tweede boek.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Als het voor het tweede boek hoort te staan, ruil ze dan om,
01:57
then compare it with the book in the first spot,
31
117173
2468
vergelijk het daarna met het eerste boek
01:59
and swap again if needed.
32
119641
2041
en ruil deze ook om, mocht het nodig zijn.
02:01
Now you've sorted the first three books.
33
121682
2198
Nu heb je de eerste drie boeken geordend.
02:03
Keep adding one book at a time to the sorted sub-line,
34
123880
3852
Voeg steeds een boek tegelijk toe aan de geordende sublijn,
02:07
comparing and swapping the new book with the one before it
35
127732
4077
door het nieuwe met het vorige boek te vergelijken en om te ruilen
02:11
until it's correctly placed among the books sorted so far.
36
131809
4195
totdat het op de juiste plek staat tussen de boeken die tot nu toe geordend zijn.
Dit heet invoegsortering.
02:16
This is called Insertion Sort.
37
136004
2209
02:18
Unlike Bubble Sort, it usually doesn't require comparing every pair of books.
38
138213
4731
Anders dan bij de bubble-sort-methode, wordt niet elk boek met elkaar vergeleken.
02:22
On average, we'd expect to only need to compare each book
39
142944
4010
Gemiddeld genomen hoeven we alleen elk boek te vergelijken
02:26
to half of the books that came before it.
40
146954
2460
met de helft van de voorgaande boeken.
02:29
In that case, the total number of comparisons
41
149414
2709
In dit geval komt dit totaal neer op
02:32
would be 409,280,
42
152123
3860
409.280 vergelijkingen
02:35
taking almost five days.
43
155983
2152
wat ruim vijf dagen in beslag neemt.
Dit zijn nog steeds te veel vergelijkingen.
02:38
You're still doing way too many comparisons.
44
158135
2489
02:40
Here's a better idea.
45
160624
1891
Er is een beter idee.
02:42
First, pick a random book.
46
162515
2370
Kies een willekeurig boek uit.
02:44
Call it the partition and compare it to every other book.
47
164885
4721
Noem het de boekensteun en vergelijk het met elk ander boek.
02:49
Then, divide the line
48
169606
1909
Verdeel daarna de rij
02:51
by placing all the books that come before the partition on its left
49
171515
4151
door alle boeken die tot aan de boekensteun horen links te plaatsen
02:55
and all the ones that come after it on its right.
50
175666
3159
en de rest van de boeken rechts te plaatsen.
02:58
You've just saved loads of time
51
178825
1590
Je hebt ontzettend veel tijd bespaard
03:00
by not having to compare any of the books on the left
52
180415
3430
doordat je de boeken aan de linkerkant
03:03
to any of the ones on the right ever again.
53
183845
3400
nooit meer met de boeken aan de rechterkant hoeft te vergelijken.
03:07
Now, looking only at the books on the left,
54
187245
2420
Als je alleen de boeken aan de linkerkant bekijkt,
03:09
you can again pick a random partition book
55
189665
2877
dan kan je weer een willekeurig boek als boekensteun gebruiken
03:12
and separate those books that come before it from those that come after it.
56
192542
4724
en deze boeken links of rechts ervan plaatsen.
03:17
You can keep creating sub-partitions like this
57
197266
2470
Je kan dit soort indelingen blijven maken
03:19
until you have a bunch of small sub-lines,
58
199736
2648
totdat je een groep kleine sublijnen hebt,
03:22
each of which you'd sort quickly using another strategy, like Insertion Sort.
59
202384
5380
die je zo snel mogelijk ordent
door een andere strategie toe te passen, zoals invoegsortering.
03:27
Each round of partitioning requires about 1,280 comparisons.
60
207764
5162
Elke sorteerronde bestaat uit minstens 1.280 vergelijkingen.
03:32
If your partitions are pretty balanced,
61
212926
2540
Als je indelingen behoorlijk evenwichtig zijn
03:35
dividing the books into 128 sub-lines of ten would take about seven rounds,
62
215466
5790
dan duurt het ruim zeven rondes om de boeken per tien stuks
in 128 sublijnen in te delen
03:41
or 8,960 seconds.
63
221256
2691
of 8.960 secondes.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
Per sublijn worden er 22 secondes extra toegevoegd.
03:48
All in all, this method known as QuickSort
65
228736
3081
Hoe dan ook, via deze quicksort-methode
03:51
could sort the books in under three and a half hours.
66
231817
3066
worden boeken binnen drieënhalf uur gesorteerd.
03:54
But there's a catch.
67
234883
1114
Maar er zit een addertje.
03:55
Your partitions could end up lopsided, saving no time at all.
68
235997
3578
Je indelingen kunnen onevenwichtig zijn, waardoor er veel tijd verloren gaat.
03:59
Luckily, this rarely happens.
69
239575
1902
Gelukkig gebeurt dit zelden.
04:01
That's why QuickSort is one of the most efficient strategies
70
241477
3433
Daarom is de quicksort-methode een van de meest efficiënte strategieën
04:04
used by programmers today.
71
244910
2006
die momenteel door programmeurs worden toegepast.
04:06
They use it for things like sorting items in an online store by price,
72
246916
3931
Ze passen deze methode toe om producten in een webwinkel op prijs te ordenen
04:10
or creating a list of all the gas stations close to a given location
73
250847
4011
of om een overzicht te maken van de dichtstbijzijnde benzinepompen
04:14
sorted by distance.
74
254858
1521
op basis van afstand.
04:16
In your case, you're done quick sorting with time to spare.
75
256379
4028
In jouw geval heb je snel geordend en genoeg tijd overgehouden.
04:20
Just another high-stakes day in the library.
76
260407
2261
Gewoon weer een productieve dag in de mediatheek.
Over deze website

Deze site laat u kennismaken met YouTube-video's die nuttig zijn om Engels te leren. U ziet Engelse lessen gegeven door topdocenten uit de hele wereld. Dubbelklik op de Engelse ondertitels op elke videopagina om de video af te spelen. De ondertitels scrollen synchroon met het afspelen van de video. Heeft u opmerkingen of verzoeken, neem dan contact met ons op via dit contactformulier.

https://forms.gle/WvT1wiN1qDtmnspy7