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

Самый быстрый способ расставить книги в алфавитном порядке — Чанд Джон

3,894,455 views

2016-11-28 ・ TED-Ed


New videos

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

Самый быстрый способ расставить книги в алфавитном порядке — Чанд Джон

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

TED-Ed


Пожалуйста, дважды щелкните на английские субтитры ниже, чтобы воспроизвести видео.

Переводчик: Nataliia Pysemska Редактор: Yekaterina Jussupova
00:06
You work at the college library.
0
6911
2266
Вы работаете в университетской библиотеке.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
Внезапно посреди спокойного рабочего дня
00:11
when suddenly a shipment of 1,280 different books arrives.
2
11397
6614
привозят партию из 1 280 книг.
Они выстроены в длинный ряд вразнобой,
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
00:23
and the automatic sorting system is broken.
5
23288
3743
а система автоматической сортировки сломана.
В довершение всего, уроки начинаются завтра,
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
а это значит, что первым делом утром
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
Как же успеть их рассортировать?
00:39
One way would be to start at one end of the line with the first pair of books.
10
39493
5286
Во-первых, можно начать с первых двух книг на любом конце ряда.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Если они стоят по порядку, то оставьте их на том же месте.
00:48
Otherwise, swap them.
12
48626
2294
В противном случае поменяйте их местами.
00:50
Then, look at the second and third books,
13
50920
2296
Далее, взгляните на вторую и третью книги
00:53
repeat the process,
14
53216
1663
и повторите процедуру.
00:54
and continue until you reach the end of the line.
15
54879
3056
Продолжайте, пока не достигнете конца ряда.
00:57
At some point, you'll come across the book that should be last,
16
57935
3250
Рано или поздно вы натолкнётесь на книгу, которая должна стоять последней,
01:01
and keep swapping it with every subsequent book,
17
61185
3525
и продолжите менять её местами с последующими книгами,
01:04
moving it down the line until it reaches the end where it belongs.
18
64710
4570
пока она не окажется на своём месте в самом конце.
01:09
Then, start from the beginning and repeat the process
19
69280
2945
Затем начните с самого начала и повторите процедуру,
01:12
to get the second to last book in its proper place,
20
72225
3285
чтобы переместить предпоследнюю книгу на место.
01:15
and keep going until all books are sorted.
21
75510
3311
Продолжайте, пока не рассортируете все книги.
01:18
This approach is called Bubble Sort.
22
78821
3041
Этот подход называется «сортировка простыми обменами».
01:21
It's simple but slow.
23
81862
2294
Он не сложный, но занимает много времени.
01:24
You'd make 1,279 comparisons in the first round,
24
84156
5175
На первом этапе вы осуществите 1 279 сопоставлений,
01:29
then 1,278, and so on,
25
89331
4292
затем 1 278 на следующем и так далее.
01:33
adding up to 818,560 comparisons.
26
93623
4919
В итоге вы проведёте 818 560 сопоставлений.
01:38
If each took just one second, the process would take over nine days.
27
98542
5731
Если каждое из них займёт секунду, весь процесс растянется на 9 дней.
01:44
A second strategy would be to start by sorting just the first two books.
28
104273
4296
Прибегнув ко второй стратегии, начните с сортировки первых двух книг.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Затем сравните третью и вторую книги.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Если третья должна стоять перед второй, поменяйте их местами,
01:57
then compare it with the book in the first spot,
31
117173
2468
затем сравните её с первой книгой
01:59
and swap again if needed.
32
119641
2041
и поменяйте местами при необходимости.
02:01
Now you've sorted the first three books.
33
121682
2198
Теперь вы расставили по местам первые три книги.
02:03
Keep adding one book at a time to the sorted sub-line,
34
123880
3852
Продолжайте добавлять по одной книге за раз в отсортированный ряд,
02:07
comparing and swapping the new book with the one before it
35
127732
4077
сравнивать новую книгу с предыдущей и менять их местами,
02:11
until it's correctly placed among the books sorted so far.
36
131809
4195
пока она не займёт своё место.
Этот метод называется «сортировка вставками».
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
В отличие от сортировки простыми обменами, он не требует сравнения каждой пары книг.
02:22
On average, we'd expect to only need to compare each book
39
142944
4010
В среднем придётся сравнивать каждую книгу
02:26
to half of the books that came before it.
40
146954
2460
с половиной из тех, что шли до неё.
02:29
In that case, the total number of comparisons
41
149414
2709
В этом случае общее количество сравнений
02:32
would be 409,280,
42
152123
3860
составит 409 280 и займёт почти пять дней.
02:35
taking almost five days.
43
155983
2152
Вам всё ещё придётся сделать слишком много сравнений.
02:38
You're still doing way too many comparisons.
44
158135
2489
02:40
Here's a better idea.
45
160624
1891
Но есть другой выход.
02:42
First, pick a random book.
46
162515
2370
Вначале возьмите любую книгу.
02:44
Call it the partition and compare it to every other book.
47
164885
4721
Она будет разделителем,
с которым вы будете сравнивать остальные книги.
02:49
Then, divide the line
48
169606
1909
Затем разделите ряд,
02:51
by placing all the books that come before the partition on its left
49
171515
4151
разместив слева от разделителя книги, которые идут до него по алфавиту,
02:55
and all the ones that come after it on its right.
50
175666
3159
а справа те, что идут после.
02:58
You've just saved loads of time
51
178825
1590
Вы только что сохранили уйму времени,
03:00
by not having to compare any of the books on the left
52
180415
3430
потому что избежали необходимости сравнивать каждую книгу слева
03:03
to any of the ones on the right ever again.
53
183845
3400
с книгами справа.
03:07
Now, looking only at the books on the left,
54
187245
2420
Теперь взгляните на книги слева.
03:09
you can again pick a random partition book
55
189665
2877
Вы снова можете выбрать любую книгу
03:12
and separate those books that come before it from those that come after it.
56
192542
4724
в качестве разделителя между книгами, которые идут до и после неё.
03:17
You can keep creating sub-partitions like this
57
197266
2470
Вы можете делать это снова и снова,
03:19
until you have a bunch of small sub-lines,
58
199736
2648
пока не получите множество небольших групп,
03:22
each of which you'd sort quickly using another strategy, like Insertion Sort.
59
202384
5380
каждая из которых рассортирована с помощью метода сортировки вставками.
03:27
Each round of partitioning requires about 1,280 comparisons.
60
207764
5162
Каждый этап разделения требует примерно 1 280 сравнений.
03:32
If your partitions are pretty balanced,
61
212926
2540
Если ряд разделён более-менее равномерно —
03:35
dividing the books into 128 sub-lines of ten would take about seven rounds,
62
215466
5790
на 128 групп по 10 книг, — то вы справитесь за 7 этапов,
03:41
or 8,960 seconds.
63
221256
2691
или 8 960 секунд.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
Для сортировки каждой группы потребуется около 22 секунд.
03:48
All in all, this method known as QuickSort
65
228736
3081
В общем, этот метод под названием «быстрая сортировка»
03:51
could sort the books in under three and a half hours.
66
231817
3066
поможет рассортировать книги за три с половиной часа.
03:54
But there's a catch.
67
234883
1114
Но подвох в том,
03:55
Your partitions could end up lopsided, saving no time at all.
68
235997
3578
что выбранные разделители могут стоять в конце, и вы не сэкономите время.
03:59
Luckily, this rarely happens.
69
239575
1902
К счастью, такое происходит редко.
04:01
That's why QuickSort is one of the most efficient strategies
70
241477
3433
Именно поэтому быстрая сортировка является самым эффективным методом,
04:04
used by programmers today.
71
244910
2006
используемым программистами на сегодняшний день.
04:06
They use it for things like sorting items in an online store by price,
72
246916
3931
Они используют его для сортировки товаров по цене в интернет-магазинах
04:10
or creating a list of all the gas stations close to a given location
73
250847
4011
или создания списка всех автозаправок неподалёку от выбранного места
04:14
sorted by distance.
74
254858
1521
и сортировки их по удалённости.
04:16
In your case, you're done quick sorting with time to spare.
75
256379
4028
В вашем случае вы быстро рассортировали книги и сберегли время.
04:20
Just another high-stakes day in the library.
76
260407
2261
Всего лишь ещё один напряжённый день в библиотеке.
Об этом сайте

Этот сайт познакомит вас с видеороликами YouTube, полезными для изучения английского языка. Вы увидите уроки английского языка, преподаваемые высококлассными учителями со всего мира. Дважды щелкните по английским субтитрам, отображаемым на каждой странице видео, чтобы воспроизвести видео оттуда. Субтитры прокручиваются синхронно с воспроизведением видео. Если у вас есть какие-либо комментарии или пожелания, пожалуйста, свяжитесь с нами, используя эту контактную форму.

https://forms.gle/WvT1wiN1qDtmnspy7