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

Qual a maneira mais rápida de ordenar alfabeticamente a biblioteca? — Chand John

3,894,455 views

2016-11-28 ・ TED-Ed


New videos

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

Qual a maneira mais rápida de ordenar alfabeticamente a biblioteca? — Chand John

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

TED-Ed


Por favor, faça duplo clique nas legendas em inglês abaixo para reproduzir o vídeo.

Tradutor: Margarida Ferreira Revisora: António Ribeiro
00:06
You work at the college library.
0
6911
2266
Trabalhas na biblioteca da faculdade.
00:09
You're in the middle of a quiet afternoon
1
9177
2220
Estás no meio de uma tarde tranquila
00:11
when suddenly a shipment of 1,280 different books arrives.
2
11397
6614
quando, subitamente, chega um carregamento de 1280 livros diferentes.
00:18
The books have been dropped of in one long straight line,
3
18011
3679
Os livros foram descarregados numa longa linha reta
00:21
but they're all out of order,
4
21690
1598
mas estão todos fora de ordem,
00:23
and the automatic sorting system is broken.
5
23288
3743
e o sistema de classificação está avariado.
00:27
To make matters worse, classes start tomorrow,
6
27031
2636
Para piorar as coisas, as aulas começam amanhã
00:29
which means that first thing in the morning,
7
29667
2338
o que significa que, logo de manhã cedo,
00:32
students will show up in droves looking for these books.
8
32005
4552
todos os estudantes vão aparecer à procura desses livros.
00:36
How can you get them all sorted in time?
9
36557
2936
Como é que podes ordenar todos os livros a tempo?
00:39
One way would be to start at one end of the line with the first pair of books.
10
39493
5286
Uma forma seria começar pelos dois primeiros livros,
num dos extremos da fila.
00:44
If the first two books are in order, then leave them as they are.
11
44779
3847
Se os dois primeiros livros estiverem por ordem, deixa-os ficar onde eles estão.
00:48
Otherwise, swap them.
12
48626
2294
Caso contrário, troca-os de lugar.
00:50
Then, look at the second and third books,
13
50920
2296
Depois, observa o segundo e o terceiro livros.
00:53
repeat the process,
14
53216
1663
e repete o procedimento.
00:54
and continue until you reach the end of the line.
15
54879
3056
Continua até chegares ao fim da fila.
00:57
At some point, you'll come across the book that should be last,
16
57935
3250
A certa altura, encontras o livro que devia ser o último.
01:01
and keep swapping it with every subsequent book,
17
61185
3525
Vai-o trocando sempre de lugar com os livros posteriores,
01:04
moving it down the line until it reaches the end where it belongs.
18
64710
4570
até ele chegar ao fim da fila, ao lugar que lhe pertence.
01:09
Then, start from the beginning and repeat the process
19
69280
2945
Volta a começar do princípio e repete o procedimento.
01:12
to get the second to last book in its proper place,
20
72225
3285
até colocar o penúltimo livro no seu devido lugar.
01:15
and keep going until all books are sorted.
21
75510
3311
Volta a repetir tudo até todos os livros estarem nos seus lugares.
01:18
This approach is called Bubble Sort.
22
78821
3041
Este método chama-se "Ordenação por Flutuação".
01:21
It's simple but slow.
23
81862
2294
É simples, mas lento.
01:24
You'd make 1,279 comparisons in the first round,
24
84156
5175
Tens que fazer 1279 comparações na primeira ronda,
01:29
then 1,278, and so on,
25
89331
4292
depois, 1278, e assim sucessivamente,
01:33
adding up to 818,560 comparisons.
26
93623
4919
num total de 818 560 comparações.
01:38
If each took just one second, the process would take over nine days.
27
98542
5731
Se cada uma delas demorar só um segundo, o processo demorará nove dias.
01:44
A second strategy would be to start by sorting just the first two books.
28
104273
4296
Uma segunda estratégia seria começar por ordenar os dois primeiros livros.
01:48
Then, take the third book and compare it with the book in the second spot.
29
108569
5164
Depois, comparar o terceiro livro com o livro no segundo lugar.
01:53
If it belongs before the second book, swap them,
30
113733
3440
Se ele deve ficar antes do segundo livro, troca-os de lugar.
01:57
then compare it with the book in the first spot,
31
117173
2468
Depois compara-o com o livro no primeiro lugar
01:59
and swap again if needed.
32
119641
2041
e troca-os, se necessário.
02:01
Now you've sorted the first three books.
33
121682
2198
Tens os três primeiros livros ordenados.
02:03
Keep adding one book at a time to the sorted sub-line,
34
123880
3852
Continua com um livro de cada vez
02:07
comparing and swapping the new book with the one before it
35
127732
4077
comparando e trocando o novo livro com os que estão antes dele
02:11
until it's correctly placed among the books sorted so far.
36
131809
4195
até ele ficar corretamente colocado entre os livros ordenados até aí.
02:16
This is called Insertion Sort.
37
136004
2209
Este método chama-se "Ordenação por Inserção".
02:18
Unlike Bubble Sort, it usually doesn't require comparing every pair of books.
38
138213
4731
Ao contrário da "Ordenação por Flutuação"
não exige que se comparem todos os pares de livros.
02:22
On average, we'd expect to only need to compare each book
39
142944
4010
Em média, só precisamos de comparar cada livro
02:26
to half of the books that came before it.
40
146954
2460
com metade dos livros que estão antes dele.
02:29
In that case, the total number of comparisons
41
149414
2709
Neste caso, o número total de comparações
02:32
would be 409,280,
42
152123
3860
seria de 409 280,
02:35
taking almost five days.
43
155983
2152
o que levaria quase cinco dias.
02:38
You're still doing way too many comparisons.
44
158135
2489
Continuas a ter que fazer demasiadas comparações.
02:40
Here's a better idea.
45
160624
1891
Esta é uma ideia melhor.
02:42
First, pick a random book.
46
162515
2370
Primeiro, agarra num livro ao acaso.
02:44
Call it the partition and compare it to every other book.
47
164885
4721
Chama-lhe "partição" e compara-o com o outros livros todos.
02:49
Then, divide the line
48
169606
1909
Depois divide a fila
02:51
by placing all the books that come before the partition on its left
49
171515
4151
colocando à esquerda todos os livros que devem ficar antes da partição
02:55
and all the ones that come after it on its right.
50
175666
3159
e à direita, os que devem ficar depois da partição.
02:58
You've just saved loads of time
51
178825
1590
Poupaste imenso tempo
03:00
by not having to compare any of the books on the left
52
180415
3430
porque não precisas de comparar nenhum dos livros da esquerda
03:03
to any of the ones on the right ever again.
53
183845
3400
com os da direita.
03:07
Now, looking only at the books on the left,
54
187245
2420
Depois, olha só para os livros da esquerda.
03:09
you can again pick a random partition book
55
189665
2877
Podes voltar a agarrar num livro ao acaso, outra "partição"
03:12
and separate those books that come before it from those that come after it.
56
192542
4724
e separar os livros antes dela dos livros depois dela.
03:17
You can keep creating sub-partitions like this
57
197266
2470
Podes continuar a criar subpartições como estas
03:19
until you have a bunch of small sub-lines,
58
199736
2648
até teres um grupo de pequenas sublinhas,
03:22
each of which you'd sort quickly using another strategy, like Insertion Sort.
59
202384
5380
cada uma das quais podes ordenar rapidamente,
usando outra estratégia como a "Ordenação por Inserção".
03:27
Each round of partitioning requires about 1,280 comparisons.
60
207764
5162
Cada ronda de partição exige cerca de 1280 comparações.
03:32
If your partitions are pretty balanced,
61
212926
2540
Se as partições estiverem equilibradas,
03:35
dividing the books into 128 sub-lines of ten would take about seven rounds,
62
215466
5790
dividir os livros em 128 sublinhas de 10, deve precisar de sete rondas,
03:41
or 8,960 seconds.
63
221256
2691
ou seja 8960 segundos.
03:43
Sorting these sub-lines would add about 22 seconds each.
64
223947
4789
Ordenar as sublinhas, demorará mais 22 segundos cada.
03:48
All in all, this method known as QuickSort
65
228736
3081
Ao todo, este método, conhecido por "Ordenação Rápida"
03:51
could sort the books in under three and a half hours.
66
231817
3066
pode ordenar os livros em menos de três horas e meia.
03:54
But there's a catch.
67
234883
1114
Mas há um inconveniente.
03:55
Your partitions could end up lopsided, saving no time at all.
68
235997
3578
As partições podem ficar desequilibradas, e não poupar tempo nenhum
03:59
Luckily, this rarely happens.
69
239575
1902
Felizmente, isso acontece raramente.
04:01
That's why QuickSort is one of the most efficient strategies
70
241477
3433
É por isso que a Ordenação Rápida é uma das estratégias mais eficazes
04:04
used by programmers today.
71
244910
2006
usadas hoje pelos programadores.
04:06
They use it for things like sorting items in an online store by price,
72
246916
3931
Usam-na para ordenar, por preço, os artigos numa loja online
04:10
or creating a list of all the gas stations close to a given location
73
250847
4011
ou para criar uma lista de todas as estações de gasolina
perto de uma dada localidade
04:14
sorted by distance.
74
254858
1521
ordenadas pela distância.
04:16
In your case, you're done quick sorting with time to spare.
75
256379
4028
No teu caso, fizeste uma ordenação rápida, com tempo de sobra.
04:20
Just another high-stakes day in the library.
76
260407
2261
Mais um dia de sobressalto na biblioteca
Sobre este site

Este sítio irá apresentar-lhe vídeos do YouTube que são úteis para a aprendizagem do inglês. Verá lições de inglês ensinadas por professores de primeira linha de todo o mundo. Faça duplo clique nas legendas em inglês apresentadas em cada página de vídeo para reproduzir o vídeo a partir daí. As legendas deslocam-se em sincronia com a reprodução do vídeo. Se tiver quaisquer comentários ou pedidos, por favor contacte-nos utilizando este formulário de contacto.

https://forms.gle/WvT1wiN1qDtmnspy7