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

3,894,455 views ・ 2016-11-28

TED-Ed


Proszę kliknąć dwukrotnie na poniższe angielskie napisy, aby odtworzyć film.

Tłumaczenie: Magdalena Góra Korekta: Ola Królikowska
00:06
You work at the college library.
0
6911
2266
Pracujesz w bibliotece uniwersyteckiej.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
Jest środek spokojnego popołudnia,
00:11
when suddenly a shipment of 1,280 different books arrives.
2
11397
6614
kiedy nagle przybywa dostawa 1280 książek.
Książki zostały ułożone w jednym, długim rzędzie
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
w losowej kolejności,
00:23
and the automatic sorting system is broken.
5
23288
3743
a automatyczny system do segregacji jest zepsuty.
Co gorsza, jutro zaczynają się zajęcia,
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
co oznacza, że z samego rana
00:32
students will show up in droves looking for these books.
8
32005
4552
książek będą szukać tłumy studentów.
00:36
How can you get them all sorted in time?
9
36557
2936
Jak posortować je na czas?
00:39
One way would be to start at one end of the line with the first pair of books.
10
39493
5286
Jeden ze sposobów to rozpoczęcie od pierwszej pary książek z jednego końca.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Jeśli dwie pierwsze książki są dobrze ułożone, zostaw je bez zmian.
00:48
Otherwise, swap them.
12
48626
2294
W przeciwnym razie zamień je miejscami.
00:50
Then, look at the second and third books,
13
50920
2296
Teraz spójrz na drugą i trzecią książkę,
00:53
repeat the process,
14
53216
1663
powtórz proces
00:54
and continue until you reach the end of the line.
15
54879
3056
i kontynuuj, aż dotrzesz do końca linii.
00:57
At some point, you'll come across the book that should be last,
16
57935
3250
W końcu natkniesz się na książkę, która powinna być ostatnia.
01:01
and keep swapping it with every subsequent book,
17
61185
3525
Zamieniaj ją z każdą kolejną książką,
01:04
moving it down the line until it reaches the end where it belongs.
18
64710
4570
przesuwając wzdłuż rzędu aż na koniec.
01:09
Then, start from the beginning and repeat the process
19
69280
2945
Następnie zacznij od początku i powtórz cały proces,
01:12
to get the second to last book in its proper place,
20
72225
3285
żeby umieścić przedostatnią książkę na swoim miejscu.
01:15
and keep going until all books are sorted.
21
75510
3311
Kontynuuj, aż książki będą posortowane.
01:18
This approach is called Bubble Sort.
22
78821
3041
Ten sposób to sortowanie bąbelkowe.
01:21
It's simple but slow.
23
81862
2294
Jest łatwe, ale powolne.
01:24
You'd make 1,279 comparisons in the first round,
24
84156
5175
W pierwszej rundzie byłoby 1279 porównań,
01:29
then 1,278, and so on,
25
89331
4292
w kolejnej 1278 i tak dalej,
01:33
adding up to 818,560 comparisons.
26
93623
4919
co w sumie daje 818 560 porównań.
01:38
If each took just one second, the process would take over nine days.
27
98542
5731
Gdyby każde zajęło tylko sekundę, proces potrwałby ponad dziewięć dni.
01:44
A second strategy would be to start by sorting just the first two books.
28
104273
4296
Inny sposób rozpoczyna się od ułożenia tylko dwóch pierwszych książek.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Następnie weź trzecią książkę i porównaj do tej stojącej na drugim miejscu.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Jeśli powinna znaleźć się przed nią, zamień je.
01:57
then compare it with the book in the first spot,
31
117173
2468
Potem porównaj ją do pierwszej książki
01:59
and swap again if needed.
32
119641
2041
i jeśli trzeba, zamień miejscami.
02:01
Now you've sorted the first three books.
33
121682
2198
Trzy pierwsze książki są już posortowane.
02:03
Keep adding one book at a time to the sorted sub-line,
34
123880
3852
Dodawaj po jednej nowej książce do posortowanej grupy,
02:07
comparing and swapping the new book with the one before it
35
127732
4077
porównując ją i zamieniając z książką stojącą przed nią,
02:11
until it's correctly placed among the books sorted so far.
36
131809
4195
aż trafi na właściwe miejsce.
Ten sposób to sortowanie przez wstawianie.
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
W odróżnieniu od sortowania bąbelkowego nie trzeba porównywać każdej pary książek.
02:22
On average, we'd expect to only need to compare each book
39
142944
4010
Każdą książkę będzie trzeba porównać średnio
02:26
to half of the books that came before it.
40
146954
2460
tylko z połową tych, stojących przed nią.
02:29
In that case, the total number of comparisons
41
149414
2709
W tym przypadku całkowita liczba porównań
02:32
would be 409,280,
42
152123
3860
wyniosłaby 409 280,
02:35
taking almost five days.
43
155983
2152
co zajęłoby prawie pięć dni.
To wciąż zbyt wiele porównań.
02:38
You're still doing way too many comparisons.
44
158135
2489
02:40
Here's a better idea.
45
160624
1891
Oto lepszy pomysł.
02:42
First, pick a random book.
46
162515
2370
Najpierw wybierz przypadkową książkę.
02:44
Call it the partition and compare it to every other book.
47
164885
4721
Nazwijmy ją przegrodą i porównajmy z pozostałymi książkami.
02:49
Then, divide the line
48
169606
1909
Następnie podzielmy rząd,
02:51
by placing all the books that come before the partition on its left
49
171515
4151
umieszczając wszystkie książki, które mają znaleźć się przed przegrodą po jej lewej,
02:55
and all the ones that come after it on its right.
50
175666
3159
a te, które powinny stanąć za nią, po jej prawej stronie.
02:58
You've just saved loads of time
51
178825
1590
Właśnie oszczędziliśmy mnóstwo czasu.
03:00
by not having to compare any of the books on the left
52
180415
3430
Już nie będzie trzeba porównywać żadnej z książek po lewej
03:03
to any of the ones on the right ever again.
53
183845
3400
do tych po prawej stronie.
03:07
Now, looking only at the books on the left,
54
187245
2420
Teraz patrząc tylko na książki po lewej stronie,
03:09
you can again pick a random partition book
55
189665
2877
można wybrać przypadkową przegrodę
03:12
and separate those books that come before it from those that come after it.
56
192542
4724
i oddzielić książki, mające stać przed, od tych, które powinny stanąć za nią.
03:17
You can keep creating sub-partitions like this
57
197266
2470
Można dalej tworzyć takie przegrody,
03:19
until you have a bunch of small sub-lines,
58
199736
2648
aż uzyska się wiele małych grup,
03:22
each of which you'd sort quickly using another strategy, like Insertion Sort.
59
202384
5380
z których każdą posortuje się, używając innej strategii.
03:27
Each round of partitioning requires about 1,280 comparisons.
60
207764
5162
Każde rozdzielenie wymaga około 1280 porównań.
03:32
If your partitions are pretty balanced,
61
212926
2540
Jeśli segmenty są w miarę równe,
03:35
dividing the books into 128 sub-lines of ten would take about seven rounds,
62
215466
5790
podzielenie książek na 128 grup po 10 będzie wymagało około siedmiu rund
03:41
or 8,960 seconds.
63
221256
2691
albo 8960 sekund.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
Posortowanie każdej grupy zajmie wtedy około 22 sekund.
03:48
All in all, this method known as QuickSort
65
228736
3081
Tak czy inaczej ta metoda znana jako sortowanie szybkie
03:51
could sort the books in under three and a half hours.
66
231817
3066
może posortować książki w mniej niż 3,5 godziny.
03:54
But there's a catch.
67
234883
1114
Ale jest haczyk.
03:55
Your partitions could end up lopsided, saving no time at all.
68
235997
3578
Segmenty mogą okazać się niesymetryczne, co oznacza brak oszczędności czasu.
03:59
Luckily, this rarely happens.
69
239575
1902
Na szczęście rzadko się to zdarza.
04:01
That's why QuickSort is one of the most efficient strategies
70
241477
3433
Dlatego sortowanie szybkie to jedna z najbardziej wydajnych strategii
04:04
used by programmers today.
71
244910
2006
używanych przez dzisiejszych programistów.
04:06
They use it for things like sorting items in an online store by price,
72
246916
3931
Korzysta się z niej do sortowania towarów w sklepie internetowym według ceny
04:10
or creating a list of all the gas stations close to a given location
73
250847
4011
albo tworzenia listy pobliskich stacji benzynowych,
04:14
sorted by distance.
74
254858
1521
ułożonych według odległości.
04:16
In your case, you're done quick sorting with time to spare.
75
256379
4028
Właśnie udało się skończyć szybkie sortowanie przed czasem.
04:20
Just another high-stakes day in the library.
76
260407
2261
Za tobą kolejny pracowity dzień w bibliotece.
O tej stronie

Na tej stronie poznasz filmy z YouTube, które są przydatne do nauki języka angielskiego. Zobaczysz lekcje angielskiego prowadzone przez najlepszych nauczycieli z całego świata. Kliknij dwukrotnie na angielskie napisy wyświetlane na stronie każdego filmu, aby odtworzyć film od tego miejsca. Napisy przewijają się synchronicznie z odtwarzaniem filmu. Jeśli masz jakieś uwagi lub prośby, skontaktuj się z nami za pomocą formularza kontaktowego.

https://forms.gle/WvT1wiN1qDtmnspy7