Buscar

Algoritmos e Programação II (SENAC) - 2023

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

Aula 01
Representação de uma Variável
tipo de dado + nome da variável = valor da variável
Exemplos:
double altura = 1.80;
int peso = 75;
bool quitação_eleitoral = true;
Estrutura de Dados Linear (Vetor ou Array Unidimensional)
Variáveis que possuem uma relação entre si;
Possuem o mesmo tipo de dado;
Possuí índice e posição (índice = posição – 1);
Possuem apenas linhas.
Declaração e Atribuição dos Valores em uma única Instrução:
tipo_de_dado[ ] nome_do_vetor = {valor_pos_0, valor_pos_1, ..., valor_ultima_pos};
Exemplos:
int[ ] anos = { 9, 11, 14, 17 };
double[ ] pesos = { 67.5, 72.5, 89.4, 92.7 }
Declaração do Vetor com o tamanho definido para posteriormente receber Valores:
tipo_de_dado[ ] nome_do_vetor = new tipo_de_dado[tamanho_do_vetor];
Exemplos:
int[ ] idades = new int[10];
double[ ] pesos = new double[10];
O número 10 representa o tamanho do vetor, nesse caso terá 10 posições, começando no índice 0 e terminando no índice 9.
Declaração do vetor sem predefinição do tamanho:
Dessa forma, primeiramente declara-se o vetor, depois define-se o tamanho do vetor e, por fim, o valor de cada posição.
tipo_de_dado[ ] nome_do_vetor;
nome_do_vetor = new tipo_de_dado[tamanho_do_vetor];
Exemplo:
double[ ] notas;
notas = new double[3];
3 formas de representar um vetor:
Sabemos o tamanho do vetor e seus valores:
int[ ] idades = { 10, 12, 14 };
Sabemos apenas o tamanho do vetor, não sabemos seus valores:
int[ ] idades = new int[10];
Não sabemos o tamanho do vetor, nem seus valores:
int[ ] idades;
Aula 02
Estrutura de Dados (Matriz ou Array Bidimensional)
Variáveis que possuem uma relação entre si;
Possuem o mesmo tipo de dado;
Possuí índice e posição (índice = posição – 1);
Possuem linhas e colunas.
Representação:
float[ , ] pesos = { { 17.8, 22.8, 34.8 }, { 23.9, 44.7, 89.7 } };
3 formas de representar uma matriz:
Sabemos o tamanho da matriz e seus valores:
int[ , ] idades = {{ 10, 12, 14 }, { 13, 23, 78 }};
Sabemos apenas o tamanho da matriz, não sabemos seus valores:
int[ , ] idades = new int[10, 5];
Não sabemos o tamanho da matriz, nem seus valores:
int[ , ] idades;
Aula 03 e Aula 04
Algoritmos de Busca em Vetores:
Busca Linear ou Sequencial
Busca Binária (menos iterações que a busca linear para encontrar o valor)
Busca Linear:
. Os valores não precisam estar ordenados no vetor.
Busca Binária:
. Todos os valores precisam estar ordenados no vetor em ordem crescente;
. Segue o método de divisão e conquista;
. Caso haja um valor par de índices, o índice central é arredondado para o menor valor.
	
EFICIÊNCIA de Algoritmos
	
Busca Linear
	Função Linear
	O(n)
	
Busca Binária
	Função Logarítmica
	O(log2n)
Aula 05
Ordenação pelo Método Bolha (Bubble Sort)
. A ordenação pelo método bolha procura posicionar os maiores elementos ao final do vetor;
. Em uma passada pelo vetor (n operações), o maior elemento será alocado na última posição;
. Uma passada pelo vetor sem nenhuma ocorrência de alteração de posição dos elementos indica que ele já está ordenado e, portanto, não é mais necessário repetir essas passadas até um total de n, podendo-se encerrar o algoritmo;
. Cada passada não precisa percorrer todo o vetor, pois, garantidamente, os últimos elementos estão ordenados; assim, a cada passada, é necessário ir até o elemento anterior ao último ordenado na passada anterior.
Exemplo: https://shre.ink/QEsP
Ordenação por Seleção (Selection Sort)
. A ordenação por seleção troca um elemento na parte inicial pelo menor elemento que há no restante do vetor a cada iteração;
. O algoritmo procurará o menor elemento a partir da posição inicial (0) e o trocará com o da posição 0. Em seguida, buscará o menor elemento a partir da posição 1 e o trocará com o da posição 1 – repetindo o processo até ordenar todo o vetor.
Exemplo: https://shre.ink/QEhO
Ordenação por Inserção (Insertion Sort)
. Busca os menores elementos no restante do vetor para posicioná-los ordenadamente no início.
Exemplo: https://shre.ink/QEHr
Resumo Geral: https://shre.ink/QEKR
	
EFICIÊNCIA de Algoritmos
	
Bubble Sort
	Função Quadrática
	O(n²)
	
Selection Sort
	Função Quadrática
	O(n²)
	
Insertion Sort
	Função Quadrática
	O(n²)
Aula 06
Função Recursiva
. É uma função que chama a si mesma;
. Uma chamada recursiva a si mesma com parâmetros sempre diferentes;
. Um critério de parada para evitar o loop infinito.
Um problema recursivo é representado pelo princípio matemático da indução, por meio do qual partimos da observação de diversos casos particulares para estabelecer uma conclusão. A demonstração da solução pelo método da indução contém duas partes:
1. Passo base: solução para o caso mais básico.
2. Passo indutivo: solução para os demais casos, sendo cada um expresso em função do anterior.
Aula 07
Algoritmos de Ordenação Eficientes
MergeSort:
. Uso de recursão;
. Método da Divisão e Conquista;
. Ponto do vetor em que ocorrerá a divisão ocorre sempre no meio.
Exemplo: https://shre.ink/Qsv2
QuickSort:
. Uso de recursão;
. Método da Divisão e Conquista;
. Ponto do vetor em que ocorrerá a divisão chamado de pivô (nem sempre será no meio do vetor).
Exemplo: https://shre.ink/Qsvc
	
EFICIÊNCIA de Algoritmos
	
MergeSort
	Função Logarítmica
	O(n log n)
	
QuickSort
	Função Quadrática
	O(n²)
	
Conhecemos novos algoritmos de ordenação que, baseados na técnica da recursividade, conseguem ser mais eficientes que os algoritmos de ordenação elementares.
Aula 08
A criação de um objeto de uma classe é feita pela seguinte sintaxe:
nome_classe nome_objeto = new nome_classe(valores_dos_atributos)
Chamar um método de um objeto, utiliza-se a seguinte sintaxe:
nome_objeto <ponto> nome_método
Exercícios Gerais
Depois de criado um array não podemos adicionar ou remover posições.
Para encontrar o elemento do meio em um vetor com tamanho par, você pode seguir os seguintes passos:
Obtenha o tamanho do vetor.
Divida o tamanho por 2, arredondando para baixo, se necessário. Isso fornecerá a posição do elemento do meio.
Acesse o elemento do vetor com a posição obtida no passo anterior.
Aqui está um exemplo { 5, 10, 12, 38, 45, 61, 65, 69, 81, 89, 98, 100 }:
O tamanho do vetor é 12.
12 dividido por 2 é igual a 6.
O elemento do meio está na posição 6.
Acessando o elemento na posição 6, encontramos o valor 61.
Portanto, o elemento que ocupa o meio do vetor é 61.
Método Auxiliar Não Recursivo do MergeSort = Intercalar
Método Auxiliar Não Recursivo do QuickSort = Particionar

Continue navegando