·
Matemática Aplicada a Negócios ·
Introdução à Computação 2
Envie sua pergunta para a IA e receba a resposta na hora
Prefere sua atividade resolvida por um tutor especialista?
- Receba resolvida até o seu prazo
- Converse com o tutor pelo chat
- Garantia de 7 dias contra erros
Recomendado para você
25
Slide - Ordenação por Seleção - 2023-2
Introdução à Computação 2
USP
54
Slide - Ordenação Por Fusão - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
113
Slide - Método da Bolha - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
54
Slide - Ordenação Por Fusão - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
48
Slide - Estruturas e Ponteiros em C e C - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
4
Prática 4 - Recursão - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
21
Slide - Complexidade de Algoritmos - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
92
Slide - Algoritmos de Ordenação - 2023-2
Introdução à Computação 2
USP
61
Slide - Sub-algoritmos em C
Introdução à Computação 2
USP
1
Prática 6 - Busca Binária e Ordenação por Inserção - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
Texto de pré-visualização
FAC. DE FILOSOFIA, CIÊNCIAS E LETRAS DE RIBEIRÃO PRETO UNIVERSIDADE DE SÃO PAULO Introdução à Computação II - 5954006 2o semestre 2023 Prof. Renato Tinós 1 PRÁTICA 2 Análise por Operações Primitivas Seja uma função (subrotina) que, dado um vetor v com n inteiros e um inteiro x (chave de busca), retorne o índice da segunda ocorrência de x em v; caso não encontre dois valores de x no vetor v, a função deve retornar o valor -1. A busca deve ser interrompida assim que o índice da segunda ocorrência de x em v seja encontrado ou quando se chegar no último elemento do vetor. Pede-se: a) Implemente a função em C++. b) Faça a análise por operações primitivas da função. Observação: devem ser apresentadas: i) a função escrita em C++; ii) a análise por operações primitivas. FAC. DE FILOSOFIA, CIÊNCIAS E LETRAS DE RIBEIRÃO PRETO UNIVERSIDADE DE SÃO PAULO Introdução à Computação II - 5954006 2o semestre 2023 Prof. Renato Tinós PRÁTICA 2 Análise por Operações Primitivas Seja uma função (subrotina) que, dado um vetor v com n inteiros e um inteiro x (chave de busca), retorne o índice da segunda ocorrência de x em v; caso não encontre dois valores de x no vetor v, a função deve retornar o valor -1. A busca deve ser interrompida assim que o índice da segunda ocorrência de x em v seja encontrado ou quando se chegar no último elemento do vetor. Pede-se: a) Implemente a função em C++. b) Faça a análise por operações primitivas da função. Observação: devem ser apresentadas: i) a função escrita em C++; ii) a análise por operações primitivas. Respostas: int segunda_ocorrencia(int v[], int n, int x) { int cont = 0; for (int i = 0; i < n; i++) { if (v[i] == x) { cont++; if (cont == 2) { return i; } } } return -1; } A função segunda_ocorrencia recebe como parâmetros um vetor de inteiros v, o tamanho do vetor n e um valor inteiro x. A função retorna o índice da segunda ocorrência de x no vetor v, ou -1 se x não ocorrer duas vezes no vetor. A análise por operações primitivas da função é a seguinte: • Atribuição de cont = 0: 1 operação • Laço for de i = 0 até n: n+1 operações • Comparação i < n: n operações • Incremento i++: n operações • Comparação v[i] == x: n operações • Incremento cont++: no máximo n/2 operações • Comparação cont == 2: no máximo n/2 operações • Retorno return i: 1 operação • Retorno return -1: 1 operação No total, a função realiza no máximo 5n + 5 operações primitivas. Isso significa que a complexidade da função é O(n), ou seja, o tempo de execução da função cresce linearmente com o tamanho do vetor.
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
25
Slide - Ordenação por Seleção - 2023-2
Introdução à Computação 2
USP
54
Slide - Ordenação Por Fusão - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
113
Slide - Método da Bolha - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
54
Slide - Ordenação Por Fusão - Bubblesort e Sharkesort - 2023-2
Introdução à Computação 2
USP
48
Slide - Estruturas e Ponteiros em C e C - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
4
Prática 4 - Recursão - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
21
Slide - Complexidade de Algoritmos - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
92
Slide - Algoritmos de Ordenação - 2023-2
Introdução à Computação 2
USP
61
Slide - Sub-algoritmos em C
Introdução à Computação 2
USP
1
Prática 6 - Busca Binária e Ordenação por Inserção - Introdução à Computação 2 - 2023-2
Introdução à Computação 2
USP
Texto de pré-visualização
FAC. DE FILOSOFIA, CIÊNCIAS E LETRAS DE RIBEIRÃO PRETO UNIVERSIDADE DE SÃO PAULO Introdução à Computação II - 5954006 2o semestre 2023 Prof. Renato Tinós 1 PRÁTICA 2 Análise por Operações Primitivas Seja uma função (subrotina) que, dado um vetor v com n inteiros e um inteiro x (chave de busca), retorne o índice da segunda ocorrência de x em v; caso não encontre dois valores de x no vetor v, a função deve retornar o valor -1. A busca deve ser interrompida assim que o índice da segunda ocorrência de x em v seja encontrado ou quando se chegar no último elemento do vetor. Pede-se: a) Implemente a função em C++. b) Faça a análise por operações primitivas da função. Observação: devem ser apresentadas: i) a função escrita em C++; ii) a análise por operações primitivas. FAC. DE FILOSOFIA, CIÊNCIAS E LETRAS DE RIBEIRÃO PRETO UNIVERSIDADE DE SÃO PAULO Introdução à Computação II - 5954006 2o semestre 2023 Prof. Renato Tinós PRÁTICA 2 Análise por Operações Primitivas Seja uma função (subrotina) que, dado um vetor v com n inteiros e um inteiro x (chave de busca), retorne o índice da segunda ocorrência de x em v; caso não encontre dois valores de x no vetor v, a função deve retornar o valor -1. A busca deve ser interrompida assim que o índice da segunda ocorrência de x em v seja encontrado ou quando se chegar no último elemento do vetor. Pede-se: a) Implemente a função em C++. b) Faça a análise por operações primitivas da função. Observação: devem ser apresentadas: i) a função escrita em C++; ii) a análise por operações primitivas. Respostas: int segunda_ocorrencia(int v[], int n, int x) { int cont = 0; for (int i = 0; i < n; i++) { if (v[i] == x) { cont++; if (cont == 2) { return i; } } } return -1; } A função segunda_ocorrencia recebe como parâmetros um vetor de inteiros v, o tamanho do vetor n e um valor inteiro x. A função retorna o índice da segunda ocorrência de x no vetor v, ou -1 se x não ocorrer duas vezes no vetor. A análise por operações primitivas da função é a seguinte: • Atribuição de cont = 0: 1 operação • Laço for de i = 0 até n: n+1 operações • Comparação i < n: n operações • Incremento i++: n operações • Comparação v[i] == x: n operações • Incremento cont++: no máximo n/2 operações • Comparação cont == 2: no máximo n/2 operações • Retorno return i: 1 operação • Retorno return -1: 1 operação No total, a função realiza no máximo 5n + 5 operações primitivas. Isso significa que a complexidade da função é O(n), ou seja, o tempo de execução da função cresce linearmente com o tamanho do vetor.