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

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

TED-Ed


Видеог тоглуулахын тулд доорх англи хадмал дээр давхар товшино уу.

Translator: Batchansaa Batzorig Reviewer: Sundari Enkhtugs
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
гэнэт 1280 өөр өөр номны ачаа ирлээ.
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
Нэг үзүүрийн эхний 2 номноос эхэлж болох юм.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Хэрэв эхний 2 ном нь зөв байрлалд байвал байгаагаар нь орхи.
00:48
Otherwise, swap them.
12
48626
2294
Үгүй бол байрыг нь соль.
00:50
Then, look at the second and third books,
13
50920
2296
Дараа нь 2 болон 3 дахь номнуудад өмнөх үйлдлийг
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
Хамгийн эхэнд 1279 харьцуулалт хийгдэнэ.
01:29
then 1,278, and so on,
25
89331
4292
Дараа нь 1278 гэсээр
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
2 дахь арга нь эхний 2 номыг ангилж эхэлнэ.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Үүний дараа 3 дахь номыг 2 дахь номтой харьцуулна.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Хэрэв 3 дугаар нь 2 дахь номныхоо өмнө байх хэрэгтэй бол байрыг нь соль.
01:57
then compare it with the book in the first spot,
31
117173
2468
Үүний дараа 1-р байранд байгаа номтой харьцуулаад
01:59
and swap again if needed.
32
119641
2041
солих шаардлагатай бол байрыг нь солино.
02:01
Now you've sorted the first three books.
33
121682
2198
Одоо эхний 3 ном ангилагдчихлаа.
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
"Хөөсөн ангилалт" - аас ялгаатай нь 2 ном болгоныг харьцуулах шаардлагагүй.
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
409280 болж
02:35
taking almost five days.
43
155983
2152
ойролцоогоор 5 өдөр шаардана.
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
Хуваагдалт болгон 1280 харьцуулалт хийгдэнэ.
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
нийт номоо 10 аар хуваасан 128 жижиг цуваа болгоход 7 үе шаардна
03:41
or 8,960 seconds.
63
221256
2691
эсвэл 8960 сэкунд.
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
бүх номыг 3 цаг хагаст ангилж дуусгана.
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