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

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

TED-Ed


A videó lejátszásához kattintson duplán az alábbi angol feliratokra.

Fordító: Ádám Kósa Lektor: Zsuzsa Viola
00:06
You work at the college library.
0
6911
2266
Az egyetemi könyvtárban dolgozol.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
Napod már a vége felé közeledik,
00:11
when suddenly a shipment of 1,280 different books arrives.
2
11397
6614
amikor hirtelen befut egy 1280 különböző könyvből álló szállítmány.
00:18
The books have been dropped of in one long straight line,
3
18011
3679
A könyveket egy vonalban, egymás mellé rakják le,
00:21
but they're all out of order,
4
21690
1598
de rendezetlen az egész,
00:23
and the automatic sorting system is broken.
5
23288
3743
és az automatikus osztályozó rendszer elromlott.
00:27
To make matters worse, classes start tomorrow,
6
27031
2636
Ha ez még nem lenne elég, holnap tanítási nap,
00:29
which means that first thing in the morning,
7
29667
2338
így az első dolog reggel az lesz,
00:32
students will show up in droves looking for these books.
8
32005
4552
hogy tanulók tömegei fogják ezeket a könyveket keresni.
00:36
How can you get them all sorted in time?
9
36557
2936
Hogyan tudod őket időben elrendezni?
00:39
One way would be to start at one end of the line with the first pair of books.
10
39493
5286
Kezdhetnénk úgy, hogy az egyik végéről felveszed az első két könyvet.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Ha azok sorrendben vannak, hagyd úgy, ahogy voltak.
00:48
Otherwise, swap them.
12
48626
2294
Máskülönben felcseréljük őket.
00:50
Then, look at the second and third books,
13
50920
2296
Majd jön a második, harmadik pár,
00:53
repeat the process,
14
53216
1663
a folyamat ismétlődik.
00:54
and continue until you reach the end of the line.
15
54879
3056
Ezt egészen addig folytatod, amíg a sor végére érsz.
00:57
At some point, you'll come across the book that should be last,
16
57935
3250
Lesz, hogy az utolsónak szánt könyv kerül a kezedbe,
01:01
and keep swapping it with every subsequent book,
17
61185
3525
és addig teszed a mögötte lévő könyvek után,
01:04
moving it down the line until it reaches the end where it belongs.
18
64710
4570
amíg oda nem érsz, ahová az tartozik, a végére.
01:09
Then, start from the beginning and repeat the process
19
69280
2945
Majd a folyamat újraindul, kezded elölről,
01:12
to get the second to last book in its proper place,
20
72225
3285
hogy az utolsó előtti könyv is helyére kerüljön,
01:15
and keep going until all books are sorted.
21
75510
3311
ez addig megy, míg mindegyik rendben lesz.
01:18
This approach is called Bubble Sort.
22
78821
3041
Ezt a módszert buborékrendezésnek hívjuk.
01:21
It's simple but slow.
23
81862
2294
Egyszerű, viszont lassú.
01:24
You'd make 1,279 comparisons in the first round,
24
84156
5175
Első körben 1279-szer veted őket össze,
01:29
then 1,278, and so on,
25
89331
4292
majd 1278-szer és így tovább,
01:33
adding up to 818,560 comparisons.
26
93623
4919
összesen 818 560-szor csinálod meg.
01:38
If each took just one second, the process would take over nine days.
27
98542
5731
Ha másodpercenként egyet vetnél össze, a folyamat kilenc napig tartana.
01:44
A second strategy would be to start by sorting just the first two books.
28
104273
4296
A másik módszer az lehetne, hogy az első két könyvvel kezdenél.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Majd hozzávennéd a harmadikat, és összevetnéd a második helyen lévővel.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Ha azt a második hely illeti meg, megcseréled őket,
01:57
then compare it with the book in the first spot,
31
117173
2468
majd az első helyen lévővel veted össze,
01:59
and swap again if needed.
32
119641
2041
és ha kell, megint megcseréled.
02:01
Now you've sorted the first three books.
33
121682
2198
Eddig sorba raktad az első három könyvet.
02:03
Keep adding one book at a time to the sorted sub-line,
34
123880
3852
Adj hozzá mindig egy könyvet a már rendezettekhez,
02:07
comparing and swapping the new book with the one before it
35
127732
4077
vesd össze és cseréld meg az új könyvet az előtt lévővel,
02:11
until it's correctly placed among the books sorted so far.
36
131809
4195
amíg a sorba rakott könyvek között helyére nem kerül.
02:16
This is called Insertion Sort.
37
136004
2209
Ezt beszúrásos rendezésnek hívjuk.
02:18
Unlike Bubble Sort, it usually doesn't require comparing every pair of books.
38
138213
4731
A buborékrendezéssel ellentétben itt nem kell minden könyvet összevetni.
02:22
On average, we'd expect to only need to compare each book
39
142944
4010
Arra számíthatunk, hogy átlagosan egy-egy könyvet
02:26
to half of the books that came before it.
40
146954
2460
csak az előttük lévők felével kell összevetni.
02:29
In that case, the total number of comparisons
41
149414
2709
Ebben az esetben az összevetések száma
02:32
would be 409,280,
42
152123
3860
409 280 lenne,
02:35
taking almost five days.
43
155983
2152
majdnem öt napig tartana.
02:38
You're still doing way too many comparisons.
44
158135
2489
Még mindig túl sokszor veted őket össze.
02:40
Here's a better idea.
45
160624
1891
Íme, egy jobb ötlet:
02:42
First, pick a random book.
46
162515
2370
Véletlenszerűen kiveszel egy könyvet.
02:44
Call it the partition and compare it to every other book.
47
164885
4721
Nevezd el válaszelemnek, és vessük össze mindegyik könyvvel.
02:49
Then, divide the line
48
169606
1909
Majd válaszd szét a sort úgy,
02:51
by placing all the books that come before the partition on its left
49
171515
4151
hogy a válaszelem előtti könyvek bal oldalra,
02:55
and all the ones that come after it on its right.
50
175666
3159
az utána következők pedig jobb oldalra mennek.
02:58
You've just saved loads of time
51
178825
1590
Rengeteg időt spóroltál,
03:00
by not having to compare any of the books on the left
52
180415
3430
hogy többet nem veted össze a baloldali könyveket
03:03
to any of the ones on the right ever again.
53
183845
3400
a jobboldaliakkal.
03:07
Now, looking only at the books on the left,
54
187245
2420
Most csak a baloldaliakat nézve,
03:09
you can again pick a random partition book
55
189665
2877
újabb válaszelemet vehetsz ki,
03:12
and separate those books that come before it from those that come after it.
56
192542
4724
és elkülönítheted az előtte és az utána jövő könyveket.
03:17
You can keep creating sub-partitions like this
57
197266
2470
Addig osztasz további kisebb válaszelemekre,
03:19
until you have a bunch of small sub-lines,
58
199736
2648
amíg sok-sok kis válaszfal nem lesz,
03:22
each of which you'd sort quickly using another strategy, like Insertion Sort.
59
202384
5380
melyek között más módszerrel, pl. beszúrásos rendezéssel rendet teszünk.
03:27
Each round of partitioning requires about 1,280 comparisons.
60
207764
5162
Egy-egy elválasztáshoz 1280 összevetés kell.
03:32
If your partitions are pretty balanced,
61
212926
2540
Ha válaszelemeid egyenlő távolságra rakod,
03:35
dividing the books into 128 sub-lines of ten would take about seven rounds,
62
215466
5790
ha minden tizedik könyvhöz teszünk egy válaszfalat, ami 128 darab,
03:41
or 8,960 seconds.
63
221256
2691
úgy hét kör kell vagy 8960 másodperc.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
A válaszfalak közötti rendezés egyenként 22 másodpercet venne igénybe.
03:48
All in all, this method known as QuickSort
65
228736
3081
Ezzel az ún. gyorsrendezéssel egészében véve
03:51
could sort the books in under three and a half hours.
66
231817
3066
három órán belül sorba lehet rakni a könyveket.
03:54
But there's a catch.
67
234883
1114
De van hátulütője.
03:55
Your partitions could end up lopsided, saving no time at all.
68
235997
3578
A válaszelemek aránytalanságával nem spórolnál semmit.
03:59
Luckily, this rarely happens.
69
239575
1902
Szerencsére ez ritkán történik.
04:01
That's why QuickSort is one of the most efficient strategies
70
241477
3433
Ezért van, hogy a gyorsrendezés ma az egyik leghatékonyabb,
04:04
used by programmers today.
71
244910
2006
programozók által használt módszer.
04:06
They use it for things like sorting items in an online store by price,
72
246916
3931
Például ezzel rakják sorba ár szerint online boltok készletét,
04:10
or creating a list of all the gas stations close to a given location
73
250847
4011
vagy benzinkutakat listáznak ki egy adott helytől
04:14
sorted by distance.
74
254858
1521
távolság szerint.
04:16
In your case, you're done quick sorting with time to spare.
75
256379
4028
Esetedben a rendezés után maradt még időd.
04:20
Just another high-stakes day in the library.
76
260407
2261
Csak egy újabb rázós nap a könyvtárban.
Erről a weboldalról

Ez az oldal olyan YouTube-videókat mutat be, amelyek hasznosak az angol nyelvtanuláshoz. A világ minden tájáról származó, kiváló tanárok által tartott angol leckéket láthatsz. Az egyes videók oldalán megjelenő angol feliratokra duplán kattintva onnan játszhatja le a videót. A feliratok a videó lejátszásával szinkronban gördülnek. Ha bármilyen észrevétele vagy kérése van, kérjük, lépjen kapcsolatba velünk ezen a kapcsolatfelvételi űrlapon.

https://forms.gle/WvT1wiN1qDtmnspy7