-Data Structures in Golang: https://www.youtube.com/watch?v=3DYIgTC4T1o&list=PL0q7mDmXPZm7s7weikYLpNZBKk5dCoWm6&index=2
-Exercises: https://www.hackerrank.com/challenges/print-the-elements-of-a-linked-list/problem?isFullScreen=true
Muitos algoritmos utilizam a técnica de "divide and conquer" (dividir para conquistar) para resolver problemas de forma eficiente. Alguns dos algoritmos mais conhecidos que empregam essa abordagem são:
-Merge Sort: Divide a lista em duas metades, ordena cada metade recursivamente e, em seguida, mescla as duas metades ordenadas para obter a lista ordenada.
-Quick Sort: Escolhe um elemento como pivô, divide a lista em duas partes de forma que os elementos menores que o pivô estejam à esquerda e os maiores estejam à direita, e depois ordena recursivamente as duas partes.
-Binary Search: Divide repetidamente uma lista ordenada pela metade e verifica se o elemento procurado está na metade esquerda ou direita, reduzindo assim o espaço de busca pela metade em cada iteração.