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

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

TED-Ed


Please double-click on the English subtitles below to play the video.

Translator: Deren Dlsoz Reviewer: Daban Q. Jaff
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
کاتێک لەناکاو بارێک لە ١٢٨٠ کتێبی جیاواز دەگات.
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
تۆ ١٢٧٩ بەراوردکاری دەکەیت لە خولی یەکەمدا،
01:29
then 1,278, and so on,
25
89331
4292
دواتر ١٢٧٨ و بەم شێوەیە،
01:33
adding up to 818,560 comparisons.
26
93623
4919
زیادکردن بۆ ٨١٨٥٦٠ بەراوردکردن.
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
تا ئەو کاتەی بە شێوەیەکی دروست دانرا لە نێوان ئەو کتێبانەی تا ئێستا پۆلێنکراون.
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
٤٠٩٢٨٠ دەبن،
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
هەر دەورێکی دابەشکردن پێویستی بە نزیکەی ١٢٨٠ بەراوردکاری ھەیە.
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
دابەشکردنی کتێبەکان بۆ ١٢٨ هێڵی لاوەکی لە دە حەوت خول بخایەنێت،
03:41
or 8,960 seconds.
63
221256
2691
یان ٨٩٦٠ چرکە.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
پۆلێنکردنی ئەم ژێرهێڵانە زیاد دەکات هەر یەک لە ٢٢ چرکە.
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
تەنها ڕۆژێکی تری بەرز لە کتێبخانەکە.
About this website

This site will introduce you to YouTube videos that are useful for learning English. You will see English lessons taught by top-notch teachers from around the world. Double-click on the English subtitles displayed on each video page to play the video from there. The subtitles scroll in sync with the video playback. If you have any comments or requests, please contact us using this contact form.

https://forms.gle/WvT1wiN1qDtmnspy7