Algoritmos e Estruturas de Dados Lição n.º 1 “Algoritmos e Estruturas de Dados” “Algoritmos e Estruturas de Dados” • Logística • Tecnologia • Aulas • Avaliação • Programa da cadeira • O ambiente de programação 1/31/17 Algoritmos e Estruturas de Dados 2 Tecnologia • Linguagem: Java. • Componente gráfica: Processing. • Ambiente: Eclipse, linha de comando. • Sistema operativo: Windows, MacOS, Linux. • Avaliador automático: Mooshak. • Tutoria: Moodle. 1/31/17 Algoritmos e Estruturas de Dados 3 Aulas • Teóricas: Pedro Guerreiro. • Práticas: Tiago Candeias, Hamid Shahbazkia. 1/31/17 Algoritmos e Estruturas de Dados 4 Bibliografia principal Algorithms, quarta edição (2011), Robert Sedgewick e Kevin Wayne. Book site: http://algs4.cs.princeton.edu/ http://www.amazon.co.uk/Algorithms-Robert-Sedgewick/dp/032157351X/ 1/31/17 Algoritmos e Estruturas de Dados 5 Bibliografia de interesse • Introduction to Algorithms, 3.ª edição, Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein. http://www.amazon.co.uk/Introduction-Algorithms-T- Cormen/ • The Art of Computer Programming, Donald Knuth. http://www.amazon.co.uk/Art-Computer-Programming-Volumes-1- 4a/ • Algorithms + Data Structures = Programs, Niklaus Wirth (1975). http://www.amazon.co.uk/Algorithms-Structures-Prentice-Hall- automatic-computation/ 1/31/17 Algoritmos e Estruturas de Dados 6 Coursera Algorithms, Part I • Instructors: Robert Sedgewick, Kevin Wayne. • “This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers (…) union-find algorithms; basic iterable data types (stack, queues, and bags); sorting algorithms (quicksort, mergesort, heapsort) and applications; priority queues; binary search trees; red-black trees; hash tables; and symbol-table applications.” https://www.coursera.org/course/algs4partI 1/31/17 Algoritmos e Estruturas de Dados 7 Mais Coursera Algorithms, Part II • “Part II covers graph-processing algorithms, including minimum spanning tree and shortest paths algorithms, and string processing algorithms, including string sorts, tries, substring search, regular expressions, and data compression, and concludes with an overview placing the contents of the course in a larger context.” https://www.coursera.org/course/algs4partII 1/31/17 Algoritmos e Estruturas de Dados 8 Programa de AED • Conceitos fundamentais • Grafos • Modelo de programação • Busca em profundidade • Sacos, pilhas e filas • Busca em largura • Arrays • Árvores de cobertura • “Union-Find” • Caminho mais curto • Análise de algoritmos • Problema do caixeiro viajante • Ordenação • Cadeias de carateres • Algoritmos elementares • Busca de subcadeias • Mergesort, quicksort • Compressão de dados • Filas com prioridade • Estratégias programativas • Busca • Divisão-conquista • Árvores binárias de busca • Algoritmos gananciosos • Árvores equilibradas • Programação dinâmica • Tabelas de dispersão • Intratabilidade 1/31/17 Algoritmos e Estruturas de Dados 9 Algoritmos de programação • Busca linear • Busca dicotómica • Insertionsort • Mergesort • Quicksort • Conversão numérica • Reversão numérica • Máximo, mínimo de um array • Remoção de duplicados • Comparação lexicográfica de arrays 1/31/17 Algoritmos e Estruturas de Dados 10
Description: