/SSC0606

Compilado de programas, anotações e atividades da disciplina de Estrutura de Dados 2 (SSC0606) oferecida pelo ICMC-USP

Primary LanguageMakefileMIT LicenseMIT

Estrutura-de-Dados2 / Data-Structures2

Compilado de programas, anotações e atividades da disciplina de Estrutura de Dados 2 (SSC0606) oferecida pelo ICMC-USP.

Compiled of syllabuses, notes and activities from the Data Structure discipline 2 (SSC0606) offered by ICMC-USP.

A disciplina/ The discipline

Objetivos / Goals

Apresentação de conceitos avançados que levem o aluno a uma maturidade em programação estruturada, com conhecimento de uma linguagem de programação com recursos avançados. Aprendizado de técnicas para construção de algoritmos e para análise da complexidade de algoritmos. Aprendizado de algoritmos clássicos de ordenação e busca em memória interna. Prática de Programação com solução de situações e problemas relevantes.

Presentation of advanced concepts that take the student to a maturity level of structured programming, with knowledge of a programming language with advanced features. Learning techniques for constructing algorithms and for analysis of the algorithms; complexity. Learning classical sorting and internal memory searching algorithms.Practice of Programming and application in situations of relevant problems.

Programa resumido / Summary program

Conceitos avançados de análise de algoritmos: método da árvore de recorrência e teorema mestre. Paradigmas de projetos de algoritmos. Métodos de ordenação diretos e avançados em memória interna: inserção, seleção, bubblesort, quicksort, heapsort. Métodos de busca em memória interna: sequencial, binária e árvores, comparação entre métodos. Espalhamento (hashing) em memória interna. Paradigmas de projetos de algoritmos: indução, recursividade, tentativa e erro, divisão e conquista, programação dinâmica, algoritmos gulosos e algoritmos aproximados, prática e discussão com problemas computacionais relevantes.

Advances Analysis of algorithms: techniques for counting operations and recurrences analysis, practice and discussion with relevant computational problems. Simple and advanced sorting algorithms in internal memory: basic concepts, bubble sort, quick sort, insertion sort, shell sort, selection sort, heap sort, merge sort, minor counting, type counting and radix sort, analysis of sorting algorithms, practice and discussion with relevant computational problems. Internal searching algorithms: basic concepts, sequential search, binary and search trees, practice and discussion with relevant computational problems. Internal Hashing: basic concepts, types of hash, hash functions, collision handling, analysis of search algorithms, insertion and removal based on hashing. Algorithm design paradigms: basic concepts, paradigms of induction, recursion, trial and error, divide and conquer, dynamic programming, greedy algorithms, and approximation algorithms, practice and discussion with relevant computational problems.