updated translation, progress on #25

This commit is contained in:
Marlon Aviz 2017-06-11 14:26:28 -03:00
parent 007bb622f2
commit d35984daec

View File

@ -124,7 +124,7 @@ Se você quer ser um engenheiro de confiabilidade ou engenheiro de sistemas, est
- [van Emde Boas Trees](#van-emde-boas-trees) - [van Emde Boas Trees](#van-emde-boas-trees)
- [Augmented Data Structures](#augmented-data-structures) - [Augmented Data Structures](#augmented-data-structures)
- [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees) - [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees)
- [Árvores balanceadas de busca](#Árvores-balanceadas-de-busca) - [Árvores de busca balanceadas](#Árvores-de-busca-balanceadas)
- AVL trees - AVL trees
- Splay trees - Splay trees
- Red/black trees - Red/black trees
@ -1298,7 +1298,7 @@ Você ganhará mais prática com grafos no livro do Skiena (veja a seção de li
- [ ] [06. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1) - [ ] [06. Quicksort](https://www.youtube.com/watch?v=5M5A7qPWk84&list=PLe-ggMe31CTeE3x2-nF1-toca1QpuXwE1)
- [ ] [07. Priority Queues](https://www.youtube.com/watch?v=G9TMe0KC0w0&list=PLe-ggMe31CTducy9LDiGVkdSv0NfiRwn5) (Filas Prioritárias) - [ ] [07. Priority Queues](https://www.youtube.com/watch?v=G9TMe0KC0w0&list=PLe-ggMe31CTducy9LDiGVkdSv0NfiRwn5) (Filas Prioritárias)
- [ ] [08. Elementary Symbol Tables](https://www.youtube.com/watch?v=up_nlilw3ac&list=PLe-ggMe31CTc3a8nKRDxFZZrWrBvkc9SG) (Tabelas de Símbolos Elementares) - [ ] [08. Elementary Symbol Tables](https://www.youtube.com/watch?v=up_nlilw3ac&list=PLe-ggMe31CTc3a8nKRDxFZZrWrBvkc9SG) (Tabelas de Símbolos Elementares)
- [ ] [09. Balanced Search Trees](https://www.youtube.com/watch?v=qC1BLLPK_5w&list=PLe-ggMe31CTf7jHH_mFT50kayjCEA6Rhu) (Árvores Balanceadas de Busca) - [ ] [09. Balanced Search Trees](https://www.youtube.com/watch?v=qC1BLLPK_5w&list=PLe-ggMe31CTf7jHH_mFT50kayjCEA6Rhu) (Árvores de Busca Balanceadas)
- [ ] [10. Geometric Applications of BST](https://www.youtube.com/watch?v=Wl30aGAp6TY&list=PLe-ggMe31CTdBsRIw0hXln0hilRs-DqAx) (Aplicações Geométricas de Árvores de Busca Balanceada) - [ ] [10. Geometric Applications of BST](https://www.youtube.com/watch?v=Wl30aGAp6TY&list=PLe-ggMe31CTdBsRIw0hXln0hilRs-DqAx) (Aplicações Geométricas de Árvores de Busca Balanceada)
- [ ] [11. Hash Tables](https://www.youtube.com/watch?v=QA8fJGO-i9o&list=PLe-ggMe31CTcKxIRGqqThMts2eHtSrf11) (Tabelas Hash) - [ ] [11. Hash Tables](https://www.youtube.com/watch?v=QA8fJGO-i9o&list=PLe-ggMe31CTcKxIRGqqThMts2eHtSrf11) (Tabelas Hash)
- [ ] [Sedgewick Videos - Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?flow=list&shelf_id=3&view=50) (Vídeos de Sedgewick - Algoritmos II) - [ ] [Sedgewick Videos - Algorithms II](https://www.youtube.com/user/algorithmscourses/playlists?flow=list&shelf_id=3&view=50) (Vídeos de Sedgewick - Algoritmos II)
@ -1637,102 +1637,102 @@ Esses tópicos provavelmente não aparecerão em uma entrevista, mas eu adicione
- ### Estruturas de Dados Incrementadas - ### Estruturas de Dados Incrementadas
- [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950) (CS 61B Aula 39: Incrementando Estruturas de Dados) - [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950) (CS 61B Aula 39: Incrementando Estruturas de Dados)
- ### Árvores balanceadas de busca - ### Árvores de busca balanceadas
- Saiba pelo menos um tipo de árvore binária balanceada (e saiba como ela é implementada): - Saiba pelo menos um tipo de árvore binária balanceada (e saiba como ela é implementada):
- "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular. - "Entre as Árvores de Busca Balanceadas, AVL e árvore 2/3 agora são passado, e árvores red-black (rubro-negras) parecem mais populares.
A particularly interesting self-organizing data structure is the splay tree, which uses rotations Uma estrutura de dados auto-organizada particularmente interessante é a árvore splay, a qual usa rotações
to move any accessed key to the root." - Skiena para mover qualquer chave acessada para a raiz."
- Of these, I chose to implement a splay tree. From what I've read, you won't implement a - Dessas, eu escolhi implementar a árvore splay. Com base no que eu li, você não vai implementar uma
balanced search tree in your interview. But I wanted exposure to coding one up árvore de busca balanceada na sua entrevista. Mas eu queria uma certa exposição à programação de uma dessas árvoes
and let's face it, splay trees are the bee's knees. I did read a lot of red-black tree code. e convenhamos, árvores splay são muito legais. Eu li muito código de árvores rubro-negras.
- splay tree: insert, search, delete functions - árvore splay: funções de inserir, buscar e deletar
If you end up implementing red/black tree try just these: Se você acabar implementando uma árvore rubro-negra, tente apenas essas:
- search and insertion functions, skipping delete - funções de busca e inserção, pulando a função de deletar
- I want to learn more about B-Tree since it's used so widely with very large data sets. - Eu quero aprender mais sobre a Árvore B, já que ela é amplamente usada com enormes conjuntos de dados.
- [ ] [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree) - [ ] [Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree) (Árvore binária de busca auto-balanceada)
- [ ] **AVL trees** - [ ] **Árvores AVL**
- In practice: - Ná prática:
From what I can tell, these aren't used much in practice, but I could see where they would be: Pelo que eu vejo, essas não são muito usadas na prática, mas eu consigo ver onde elas seriam usadas:
The AVL tree is another structure supporting O(log n) search, insertion, and removal. It is more rigidly Á arvore AVL é outra estrutura que dá suporte a remoção, inserção e busca O(log n). Ela é mais rigidamente
balanced than redblack trees, leading to slower insertion and removal but faster retrieval. This makes it balanceada que as árvores rubro-negras, levando à inserções e remoções mais lentas, mas uma recuperação mais rápida. Isso faz dela
attractive for data structures that may be built once and loaded without reconstruction, such as language um atrativo para estruturas de dados que podem ser construídas uma vez e carregadas sem reconstrução, assim como os dicionários de
dictionaries (or program dictionaries, such as the opcodes of an assembler or interpreter). linguagem (ou dicionários de programas, como os opcodes de um montador (assembler) ou interpretador).
- [ ] [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6) - [ ] [MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6) (Árvores AVL / Ordenação AVL, pelo MIT - vídeo)
- [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees) - [ ] [AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees) (Árvores AVl - vídeo)
- [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation) - [ ] [AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation) (Implementação de Árvores AVL - vídeo)
- [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge) - [ ] [Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge) (Dividir e Fundir)
- [ ] **Splay trees** - [ ] **Árvores Splay**
- In practice: - Ná prática:
Splay trees are typically used in the implementation of caches, memory allocators, routers, garbage collectors, Árvores splay são normalmente usadas na implementação de caches, alocadores de memória, roteadores, coletores de lixo,
data compression, ropes (replacement of string used for long text strings), in Windows NT (in the virtual memory, compressão de dados, cordas (ou "ropes" no Inglês, que é uma estrutura de dados) (substituição de string usada para longas strings de texto), no Windows NT (em código de memória virtual,
networking and file system code) etc. rede e sistema de arquivos) etc.
- [ ] [CS 61B: Splay Trees (video)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd) - [ ] [CS 61B: Splay Trees (video)](https://www.youtube.com/watch?v=Najzh1rYQTo&index=23&list=PL-XXv-cvA_iAlnI-BQr9hjqADPBtujFJd) (CS 61B: Árvores Splay - vídeo)
- [ ] MIT Lecture: Splay Trees: - [ ] Aula do MIT: Árvores Splay:
- Gets very mathy, but watch the last 10 minutes for sure. - Fica bem intenso matematicamente, mas com certeza assista aos 10 últimos minutos.
- [Video](https://www.youtube.com/watch?v=QnPl_Y6EqMo) - [Vídeo](https://www.youtube.com/watch?v=QnPl_Y6EqMo)
- [ ] **Red/black trees** - [ ] **Árvores Rubro-Negras**
- these are a translation of a 2-3 tree (see below) - essas são uma tradução de uma árvore 2-3 (veja abaixo)
- In practice: - Ná prática:
Redblack trees offer worst-case guarantees for insertion time, deletion time, and search time. Árvores rubro-negras oferecem garantias de pior-caso para tempo de inserção, tempo de exclusão e tempo de busca.
Not only does this make them valuable in time-sensitive applications such as real-time applications, Isso não só faz elas serem úteis em aplicações que sejam sensíveis ao tempo como aplicações que funcionam em tempo real,
but it makes them valuable building blocks in other data structures which provide worst-case guarantees; mas isso faz elas serem úteis também em construir blocos para outras estruturas de dados, o que proporciona garantias de pior-caso;
for example, many data structures used in computational geometry can be based on redblack trees, and por exemplo, muitas estruturas de dados usadas em geometria computacional podem ser baseadas em árvores rubro-negras, e
the Completely Fair Scheduler used in current Linux kernels uses redblack trees. In the version 8 of Java, o Agendador Completamente Justo (Completely Fair Scheduler - CFS) usado em kernels de Linux atuais, usa as árvores rubro-negras.. Na versão 8 do Java,,
the Collection HashMap has been modified such that instead of using a LinkedList to store identical elements with poor a Coleção HashMap foi modificada para usar uma árvore rubro-negra ao invés de usar uma ListaLigada para
hashcodes, a Red-Black tree is used. armazenar elementos idênticos com hashcodes fracos.
- [ ] [Aduni - Algorithms - Lecture 4 (link jumps to starting point) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871) - [ ] [Aduni - Algorithms - Lecture 4 (o link pula para o ponto de início) (video)](https://youtu.be/1W3x0f_RmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871) (Aduni - Algoritmos - Aula 4 - vídeo)
- [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) - [ ] [Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5) (Aduni - Algoritmos - Aula 5 - vídeo)
- [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) - [ ] [Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93black_tree) (Árvore Rubro-Negra)
- [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/) - [ ] [An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-binary-search-and-red-black-trees/) (Uma Introdução a Busca Binária E Árvore Rubro-Negra)
- [ ] **2-3 search trees** - [ ] **Árvores de busca 2-3**
- In practice: - Ná prática:
2-3 trees have faster inserts at the expense of slower searches (since height is more compared to AVL trees). árvores 2-3 tem inserções mais rápidas ao custo de buscas mais lentas (já que a altura é mais comparado às árvores AVL).
- You would use 2-3 tree very rarely because its implementation involves different types of nodes. Instead, people use Red Black trees. - Você raramente usaria árvore 2-3 porque a sua implementação envolve diferentes tipos de nós (nodes). Ao invés da árvore 2-3, as pessoas usam as árvores rubro-negras.
- [ ] [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2) - [ ] [23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2) (Definição e Intuição da Árvore 2-3 - vídeo)
- [ ] [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) - [ ] [Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) (Vista Binária da Árvore 2-3)
- [ ] [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) - [ ] [2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp) (Árvores 2-3 (recitação de estudante) - vídeo)
- [ ] **2-3-4 Trees (aka 2-4 trees)** - [ ] **Árvores 2-3-4 (também conhecidas como árvores 2-4)**
- In practice: - Ná prática:
For every 2-4 tree, there are corresponding redblack trees with data elements in the same order. The insertion and deletion Para cada árvores 2-4, existem árvores rubro-negras correspondentes com elementos de dados na mesma ordem. As operações de inserção e
operations on 2-4 trees are also equivalent to color-flipping and rotations in redblack trees. This makes 2-4 trees an exclusão nas árvores 2-4 são também equivalentes ao color-flipping (numa tradução livre, troca-de-cor) e às rotações nas árvores rubro-negras. Isso torna as árvores 2-4 uma
important tool for understanding the logic behind redblack trees, and this is why many introductory algorithm texts introduce ferramenta importante para compreender a lógica por trás das árvores rubro-negras, e é por isso que muitos textos de introdução a algoritmos introduzem
2-4 trees just before redblack trees, even though **2-4 trees are not often used in practice**. árvores 2-4 logo antes das árvores rubro-negras, mesmo que as **árvores 2-4 não são usadas frequentemente na prática**.
- [ ] [CS 61B Lecture 26: Balanced Search Trees (video)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C) - [ ] [CS 61B Lecture 26: Balanced Search Trees (video)](https://www.youtube.com/watch?v=zqrqYXkth6Q&index=26&list=PL4BBB74C7D2A1049C) (CS 61B Aula 26: Árvores de Busca Balanceada) - vídeo
- [ ] [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) - [ ] [Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) (Árvores 2-3-4 Descendentes - vídeo)
- [ ] [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5) - [ ] [Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5) (Árvores 2-3-4 Ascendentes) - vídeo
- [ ] **N-ary (K-ary, M-ary) trees** - [ ] **Árvores N-ary (K-ary, M-ary)**
- note: the N or K is the branching factor (max branches) - nota: o N ou K é o fator ramificador (máximo de ramificações)
- binary trees are a 2-ary tree, with branching factor = 2 - árvores binárias são uma árvore 2-ary, com um fator de ramificação = 2
- 2-3 trees are 3-ary - árvores 2-3 são 3-ary
- [ ] [K-Ary Tree](https://en.wikipedia.org/wiki/K-ary_tree) - [ ] [Árvore K-Ary](https://en.wikipedia.org/wiki/K-ary_tree)
- [ ] **B-Trees** - [ ] **Árvores B**
- fun fact: it's a mystery, but the B could stand for Boeing, Balanced, or Bayer (co-inventor) - curuiosidade: é um mistério, mas o B pode se referir a Boeing, Balanceado ou Bayber (co-inventor)
- In Practice: - Ná prática:
B-Trees are widely used in databases. Most modern filesystems use B-trees (or Variants). In addition to Árvores B são amplamente usadas em bancos de dados. A maioria dos sistemas de arquivos modernos usam árvores B (ou variantes). Além do
its use in databases, the B-tree is also used in filesystems to allow quick random access to an arbitrary seu uso em bancos de dados, ás arvores B são também usadas em sistemas de arquivos para permitir acesso aleatório rápido para um bloco
block in a particular file. The basic problem is turning the file block i address into a disk block arbitrário em um arquivo particular. O problema básico é tornar o endereço de bloco de arquivo em um endereço de bloco de disco
(or perhaps to a cylinder-head-sector) address. (ou talvez em um cilindro-cabeça-setor, do Inglês Cylinder-Head-Sector - CHS).
- [ ] [B-Tree](https://en.wikipedia.org/wiki/B-tree) - [ ] [Árvore B](https://en.wikipedia.org/wiki/B-tree)
- [ ] [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6) - [ ] [Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6) (Introdução a Árvore B - vídeo)
- [ ] [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) - [ ] [B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) (Definição e Inserção de Árvore B - vídeo)
- [ ] [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) - [ ] [B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6) (Exclusão de Árvore B - vídeo)
- [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) - [ ] [MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) (MIT 6.851 - Modelos de Hierarquia de Memória - vídeo)
- covers cache-oblivious B-Trees, very interesting data structures - cobre Árvores B de cache-alheio (do Inglês, cache-oblivious), estruturas de dados muito interessantes
- the first 37 minutes are very technical, may be skipped (B is block size, cache line size) - os primeiros 37 minutos são bem técnicos, pode ser pulado (B é tamanho de bloco, tamanho de linha de cache)
- ### k-D Trees - ### Árvores k-D
- great for finding number of points in a rectangle or higher dimension object - ótimo para encontrar número de pontos em um retângulo ou objeto de maior dimensão
- a good fit for k-nearest neighbors - um bom encaixe para vizinhos mais próximos de k
- [ ] [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk) - [ ] [Kd Trees (video)](https://www.youtube.com/watch?v=W94M9D_yXKk) (Árvores k-D - vídeo)
- [ ] [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg) - [ ] [kNN K-d tree algorithm (video)](https://www.youtube.com/watch?v=Y4ZgLlDfKDg) (Algoritmo de árvore kNN K-d - vídeo)
- ### Skip lists - ### Skip lists
- "These are somewhat of a cult data structure" - Skiena - "These are somewhat of a cult data structure" - Skiena