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

3,859,385 views ・ 2016-11-28

TED-Ed


Бейнені ойнату үшін төмендегі ағылшын тіліндегі субтитрлерді екі рет басыңыз.

Аудармашы: Ainura Jaulbayeva Редактор: Bakytgul Salykhova
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
Бұл тәсілдің атауы - Bubble Sort.
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
Егер әр әрекет бір секунд уақыт алса, жұмыс тоғыз күнге созылады.
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
кітаптар дұрыс орналаспайынша сұрыптауды жалғастырыңыз.
Бұл әдіс Insertion Sort деп аталады.
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
Bubble Sort әдісінен айырмашылығы әр жұп кітапты салыстырудың қажеті жоқ.
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-ге бөлу керек, бұл шамамен жеті раунд болады,
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
Жалпы алғанда бұл әдіс QuickSort атымен танымал,
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
Сондықтан QuickSort сұрыптаудың ең жақсы әдісі болғандықтан,
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