• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Ciência da Computação ·

Estrutura de Dados

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Apresentação sobre Bancos de Dados NoSQL

4

Apresentação sobre Bancos de Dados NoSQL

Estrutura de Dados

UVA

Database Security Threats and Prevention

8

Database Security Threats and Prevention

Estrutura de Dados

UVA

Estrutura de Dados - Sistema de Recomendacao de Produtos para E-commerce

2

Estrutura de Dados - Sistema de Recomendacao de Produtos para E-commerce

Estrutura de Dados

UVA

Texto de pré-visualização

ESCRITA E REFLEXÃO Atenção é importante que você realize a sua atividade avaliativa de forma autoral apresentando os autores utilizados conforme regra da ABNT Os trabalhos serão verificados e em caso de similaridades serão zerados Contextualização Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles Proposta de Trabalho Considerando o cenário apresentado responda às seguintes perguntas 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Orientações Inserir as quatro respostas da atividade descrevendo no formato do trabalho Professor Rodrigo Otávio Do Canto Braga Disciplina Estrutura de Dados ANEXO TEXTO ONLINE OU AMBOS com instruções claras e ordenadas para o seu entendimento UNIVERSIDADE ESTÁCIO DE SÁ VICTOR HUGO DE BRITO DE PAULA ATIVIDADE DE ESTRUTURA DE DADOS PROFESSOR Rodrigo Otávio do Canto Braga 2025 1 INTRODUÇÃO Este trabalho visa responder quatro questões relacionadas a uma situação proposta O contexto das perguntas a serem respondidas é Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles A partir dessa contextualização as quatro questões seguintes serão respondidas Questão 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção Questão 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa Questão 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação Questão 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Este trabalho contará com quatro seções além da introdução e uma seção de referências utilizadas para as respostas do trabalho 2 PRIMEIRA QUESTÃO ESTRUTURA DE DADOS RECOMENDADA Para se determinar a melhor estrutura de dados para um determinado problema se é necessário entender os requisitos do mesmo No caso do problema proposto na introdução devese encontrar uma estrutura de dados capaz de lidar com grandez volumes de dados e tem a intenção de operar em cima de um sistema de recomendação Não se há muita informação sobre os requisitos do sistema mas se é possível inferir algumas informações a partir do que um sistema de recomendação é capaz de fazer Um sistema de recomendação pode ser definido como um conjunto de algoritmos e estruturas que analisam dados de usuários e produtos para prever preferências e sugerir itens relevantes Esses sistemas geralmente se baseiam em técnicas de filtragem colaborativa filtragem baseada em conteúdo ou modelos híbridos exigindo processamento eficiente de grandes quantidades de informações como histórico de compras avaliações cliques e categorias de produtos RICCI ROKACH SHAPIRA 2022 Portanto podese concluir que o sistema referido necessita de uma estrutura de dados capaz de 1 Fornecer alta eficiência nas operações de busca e atualização para a rápida localização de usuários ou produtos 2 Alta capacidade de lidar com grande volume de dados sem perder o desempenho 3 Suporte à ordenação e filtragem de dados para encontrar produtos baseados em preço relevância ou similaridade 4 Facilidade de integração com sistemas de inteligência artificial o que geralmente requer uma capacidade de hierarquização ou indexação para otimizar o acesso Dentre as diversas estruturas de dados possíveis duas se destacam o uso de árvores principalmente as balanceadas e o uso de tabelas hash cada uma com seus pontos positivos e negativos As tabelas hash se destacam por oferecerem acesso rápido e performático tendo como complexidade média de tempo para busca e inserção de O1 o que no caso do problema apresentado permite uma rápida atualização e busca de um produto no entanto peca para ordenação e depende bastante da função hash o que pode impactar no desempenho As árvores principalmente as balanceadas se destacam por organizarem os dados de forma hierárquica e organizada permitindo fácil ordenação nas operações realizadas na mesma No caso do problema apresentado a árvore poderia ser usada para facilmente encontrar produtos classificados por preço relevância ou similaridade No entanto no quesito de desempenho de tempo buscas e inserções são mais custosas tendo complexidade média de Ologn Portanto a melhor estrutura de dados dentre as duas baseados nas necessidades do problema seria a utilização de árvores balanceadas como AVL ou RedBlack Trees dado que sistemas de recomendação necessitam de consultas ordenadas por preço ou relevância e operações de intervalo Vale ressaltar também que em um sistema real operando em produção se é possível utilizar de uma estrutrura híbrida em que tabelas hash são usadas para busca rápida do produto e árvores são utilizadas para indexação buscas intervaladas e ordenação 3 SEGUNDA QUESTÃO ALGORITMO DE BUSCA EFICIENTE A vantagem de se utilizar uma árvore para a organização dos dados do problema proposto é que a mesma contém os dados de forma ordenada o que permite a utilização de um algoritmo bastante comum para busca eficiente em dados ordenados a busca binária A principal ideia desse algoritmo é de aproveitar o fato da ordenação para saber aonde a chave a ser buscada está e essencialmente descartar metade dos dados a cada etapa da busca Em um vetor linear a busca consiste em comparar a chave a ser buscada com a chave localizada na posição média do vetor caso a chave seja maior realizar a mesma busca na direção em que os valores das chaves crescem caso contrário realizar a mesma busca na outra direção Em uma árvore balanceada a diferença não é muito grande O que muda é que ao invés de percorrer um lado do vetor se percorre uma direção da árvore Segue o pseudocódigo do algoritmo de busca de chave exata em uma árvore balanceada fun buscarBSTraiz chave atual raiz representa o nó da árvore onde a busca é feita enquanto atual nulo se chave atualchave retornar atual encontrado senão se chave atualchave atual atualesq senão atual atualdir retornar nulo A chave a ser buscada pode variar dependendo do critério a ser buscado por exemplo Uma implementação para busca de um determinado intervalo de preço por exemplo seria a seguinte fun buscarIntervaloBSTraiz A B saída A é o menor valor do intervalo e B o maior se raiz nulo retornar se A raizchave Ainda há valores maiores que A na esquerda buscarIntervaloBSTraizesq A B saída se A raizchave B Chave está no intervalor saídaadicionarraizvalor ex referência ao produto se raizchave B Ainda há valores menores que B na direita buscarIntervaloBSTraizdir A B saída 4 TERCEIRA QUESTÃO IMPORTÂNCIA DAS ÁRVORES Como mencionado na questão 1 as árvores são caracterizadas principalmente por permitirem organizar os dados de forma hierarquizada e eficiente permitindo busca inserção e remoção rápidas com complexidade Ologn Em um sistema de recomendação a utilização de árvores permite organizar os dados que servem de base para as recomendações de forma ordenada e hierarquizada Com a arquitetura correta se pode por exemplo Organizar produtos com base em alguma característica relevante como por exemplo preço relevância ou categoria facilitando filtro e ordenação Facilitar a execução de buscas por intervalo como demonstrado na questão 2 o que permite uma busca eficiente do tipo produtos entre os preços X e Y Atualizar o sistema dinamicamente rebalanceando a árvore e mantendo o desempenho Em conclusão a utilização de árvores num sistema de recomendação o torna mais rápido eficiente e inteligente facilitando a execução de algoritmos capazes de analisar os dados e determinar conexões para basear as recomendações 5 QUARTA QUESTÃO DESAFIOS DE GRANDES VOLUMES DE DADOS Um dos maiores desafios da computação nos tempos atuais se dá ao fato de que pessoas de todo o mundo têm acesso a computadores e à internet Dessa forma qualquer sistema que for construído deve levar em consideração o grande número de acessos simultâneos e a quantidade massiva de dados que serão gerados e processados Como existe um limite de processamento dos servidores desses sistemas existe uma necessidade de mantêlos eficientes para que eles sejam capazes de processar todos esses dados sem perder o desempenho esperado pelo usuário final Em resumo grandes volumes de dados necessitam de eficiência no tempo de processamento dos dados para evitar demora no recebimento dos resultados esperados otimização no consumo e armazenamento dos dados para garantir que nenhuma informação é perdida e garantia de escalabilidade e concorrência de acesso garantindo que múltiplas pessoas possam acessar o sistema sem perda de desempenho e que o sistema possa escalar conforme mais pessoas o usem As estruturas de dados são fundamentais para garantir que os pontos citados anteriormente sejam mitigados Essas estruturas em sua essência determinam como os dados serão armazenados manipulados e organizados dentro do sistema Estruturas eficientes como por exemplo as tabelas hash e árvores balanceadas permitem reduzir o tempo de processamento de dados busca enquanto minimizam o consumo de memória Além disso essas estruturas facilitam a distribuição e indexação dos dados permitindo que o sistema possa ser facilmente escalado 6 REFERÊNCIAS CORMEN Thomas H LEISERSON Charles E RIVEST Ronald L STEIN Clifford Algoritmos teoria e prática 3 ed Rio de Janeiro Elsevier 2012 LAFORE Robert Data Structures Algorithms in Java 2 ed Indianapolis Sams Publishing 2002 RICCI Francesco ROKACH Lior SHAPIRA Bracha Recommender Systems Handbook 3 ed Cham Springer 2022 TENENBAUM Aaron M LANGSAM Yedidyah AUGENSTEIN Moshe J Estruturas de Dados Usando C 2 ed São Paulo Pearson 2009 UNIVERSIDADE ESTÁCIO DE SÁ VICTOR HUGO DE BRITO DE PAULA ATIVIDADE DE ESTRUTURA DE DADOS PROFESSOR Rodrigo Otávio do Canto Braga 2025 1 INTRODUÇÃO Este trabalho visa responder quatro questões relacionadas a uma situação proposta O contexto das perguntas a serem respondidas é Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles A partir dessa contextualização as quatro questões seguintes serão respondidas Questão 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção Questão 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa Questão 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação Questão 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Este trabalho contará com quatro seções além da introdução e uma seção de referências utilizadas para as respostas do trabalho 2 PRIMEIRA QUESTÃO ESTRUTURA DE DADOS RECOMENDADA Para se determinar a melhor estrutura de dados para um determinado problema se é necessário entender os requisitos do mesmo No caso do problema proposto na introdução devese encontrar uma estrutura de dados capaz de lidar com grandez volumes de dados e tem a intenção de operar em cima de um sistema de recomendação Não se há muita informação sobre os requisitos do sistema mas se é possível inferir algumas informações a partir do que um sistema de recomendação é capaz de fazer Um sistema de recomendação pode ser definido como um conjunto de algoritmos e estruturas que analisam dados de usuários e produtos para prever preferências e sugerir itens relevantes Esses sistemas geralmente se baseiam em técnicas de filtragem colaborativa filtragem baseada em conteúdo ou modelos híbridos exigindo processamento eficiente de grandes quantidades de informações como histórico de compras avaliações cliques e categorias de produtos RICCI ROKACH SHAPIRA 2022 Portanto podese concluir que o sistema referido necessita de uma estrutura de dados capaz de 1 Fornecer alta eficiência nas operações de busca e atualização para a rápida localização de usuários ou produtos 2 Alta capacidade de lidar com grande volume de dados sem perder o desempenho 3 Suporte à ordenação e filtragem de dados para encontrar produtos baseados em preço relevância ou similaridade 4 Facilidade de integração com sistemas de inteligência artificial o que geralmente requer uma capacidade de hierarquização ou indexação para otimizar o acesso Dentre as diversas estruturas de dados possíveis duas se destacam o uso de árvores principalmente as balanceadas e o uso de tabelas hash cada uma com seus pontos positivos e negativos As tabelas hash se destacam por oferecerem acesso rápido e performático tendo como complexidade média de tempo para busca e inserção de O1 o que no caso do problema apresentado permite uma rápida atualização e busca de um produto no entanto peca para ordenação e depende bastante da função hash o que pode impactar no desempenho As árvores principalmente as balanceadas se destacam por organizarem os dados de forma hierárquica e organizada permitindo fácil ordenação nas operações realizadas na mesma No caso do problema apresentado a árvore poderia ser usada para facilmente encontrar produtos classificados por preço relevância ou similaridade No entanto no quesito de desempenho de tempo buscas e inserções são mais custosas tendo complexidade média de Ologn Portanto a melhor estrutura de dados dentre as duas baseados nas necessidades do problema seria a utilização de árvores balanceadas como AVL ou RedBlack Trees dado que sistemas de recomendação necessitam de consultas ordenadas por preço ou relevância e operações de intervalo Vale ressaltar também que em um sistema real operando em produção se é possível utilizar de uma estrutrura híbrida em que tabelas hash são usadas para busca rápida do produto e árvores são utilizadas para indexação buscas intervaladas e ordenação 3 SEGUNDA QUESTÃO ALGORITMO DE BUSCA EFICIENTE A vantagem de se utilizar uma árvore para a organização dos dados do problema proposto é que a mesma contém os dados de forma ordenada o que permite a utilização de um algoritmo bastante comum para busca eficiente em dados ordenados a busca binária A principal ideia desse algoritmo é de aproveitar o fato da ordenação para saber aonde a chave a ser buscada está e essencialmente descartar metade dos dados a cada etapa da busca Em um vetor linear a busca consiste em comparar a chave a ser buscada com a chave localizada na posição média do vetor caso a chave seja maior realizar a mesma busca na direção em que os valores das chaves crescem caso contrário realizar a mesma busca na outra direção Em uma árvore balanceada a diferença não é muito grande O que muda é que ao invés de percorrer um lado do vetor se percorre uma direção da árvore Segue o pseudocódigo do algoritmo de busca de chave exata em uma árvore balanceada fun buscarBSTraiz chave atual raiz representa o nó da árvore onde a busca é feita enquanto atual nulo se chave atualchave retornar atual encontrado senão se chave atualchave atual atualesq senão atual atualdir retornar nulo A chave a ser buscada pode variar dependendo do critério a ser buscado por exemplo Uma implementação para busca de um determinado intervalo de preço por exemplo seria a seguinte fun buscarIntervaloBSTraiz A B saída A é o menor valor do intervalo e B o maior se raiz nulo retornar se A raizchave Ainda há valores maiores que A na esquerda buscarIntervaloBSTraizesq A B saída se A raizchave B Chave está no intervalor saídaadicionarraizvalor ex referência ao produto se raizchave B Ainda há valores menores que B na direita buscarIntervaloBSTraizdir A B saída 4 TERCEIRA QUESTÃO IMPORTÂNCIA DAS ÁRVORES Como mencionado na questão 1 as árvores são caracterizadas principalmente por permitirem organizar os dados de forma hierarquizada e eficiente permitindo busca inserção e remoção rápidas com complexidade Ologn Em um sistema de recomendação a utilização de árvores permite organizar os dados que servem de base para as recomendações de forma ordenada e hierarquizada Com a arquitetura correta se pode por exemplo Organizar produtos com base em alguma característica relevante como por exemplo preço relevância ou categoria facilitando filtro e ordenação Facilitar a execução de buscas por intervalo como demonstrado na questão 2 o que permite uma busca eficiente do tipo produtos entre os preços X e Y Atualizar o sistema dinamicamente rebalanceando a árvore e mantendo o desempenho Em conclusão a utilização de árvores num sistema de recomendação o torna mais rápido eficiente e inteligente facilitando a execução de algoritmos capazes de analisar os dados e determinar conexões para basear as recomendações 5 QUARTA QUESTÃO DESAFIOS DE GRANDES VOLUMES DE DADOS Um dos maiores desafios da computação nos tempos atuais se dá ao fato de que pessoas de todo o mundo têm acesso a computadores e à internet Dessa forma qualquer sistema que for construído deve levar em consideração o grande número de acessos simultâneos e a quantidade massiva de dados que serão gerados e processados Como existe um limite de processamento dos servidores desses sistemas existe uma necessidade de mantêlos eficientes para que eles sejam capazes de processar todos esses dados sem perder o desempenho esperado pelo usuário final Em resumo grandes volumes de dados necessitam de eficiência no tempo de processamento dos dados para evitar demora no recebimento dos resultados esperados otimização no consumo e armazenamento dos dados para garantir que nenhuma informação é perdida e garantia de escalabilidade e concorrência de acesso garantindo que múltiplas pessoas possam acessar o sistema sem perda de desempenho e que o sistema possa escalar conforme mais pessoas o usem As estruturas de dados são fundamentais para garantir que os pontos citados anteriormente sejam mitigados Essas estruturas em sua essência determinam como os dados serão armazenados manipulados e organizados dentro do sistema Estruturas eficientes como por exemplo as tabelas hash e árvores balanceadas permitem reduzir o tempo de processamento de dados busca enquanto minimizam o consumo de memória Além disso essas estruturas facilitam a distribuição e indexação dos dados permitindo que o sistema possa ser facilmente escalado 6 REFERÊNCIAS CORMEN Thomas H LEISERSON Charles E RIVEST Ronald L STEIN Clifford Algoritmos teoria e prática 3 ed Rio de Janeiro Elsevier 2012 LAFORE Robert Data Structures Algorithms in Java 2 ed Indianapolis Sams Publishing 2002 RICCI Francesco ROKACH Lior SHAPIRA Bracha Recommender Systems Handbook 3 ed Cham Springer 2022 TENENBAUM Aaron M LANGSAM Yedidyah AUGENSTEIN Moshe J Estruturas de Dados Usando C 2 ed São Paulo Pearson 2009

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Apresentação sobre Bancos de Dados NoSQL

4

Apresentação sobre Bancos de Dados NoSQL

Estrutura de Dados

UVA

Database Security Threats and Prevention

8

Database Security Threats and Prevention

Estrutura de Dados

UVA

Estrutura de Dados - Sistema de Recomendacao de Produtos para E-commerce

2

Estrutura de Dados - Sistema de Recomendacao de Produtos para E-commerce

Estrutura de Dados

UVA

Texto de pré-visualização

ESCRITA E REFLEXÃO Atenção é importante que você realize a sua atividade avaliativa de forma autoral apresentando os autores utilizados conforme regra da ABNT Os trabalhos serão verificados e em caso de similaridades serão zerados Contextualização Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles Proposta de Trabalho Considerando o cenário apresentado responda às seguintes perguntas 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Orientações Inserir as quatro respostas da atividade descrevendo no formato do trabalho Professor Rodrigo Otávio Do Canto Braga Disciplina Estrutura de Dados ANEXO TEXTO ONLINE OU AMBOS com instruções claras e ordenadas para o seu entendimento UNIVERSIDADE ESTÁCIO DE SÁ VICTOR HUGO DE BRITO DE PAULA ATIVIDADE DE ESTRUTURA DE DADOS PROFESSOR Rodrigo Otávio do Canto Braga 2025 1 INTRODUÇÃO Este trabalho visa responder quatro questões relacionadas a uma situação proposta O contexto das perguntas a serem respondidas é Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles A partir dessa contextualização as quatro questões seguintes serão respondidas Questão 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção Questão 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa Questão 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação Questão 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Este trabalho contará com quatro seções além da introdução e uma seção de referências utilizadas para as respostas do trabalho 2 PRIMEIRA QUESTÃO ESTRUTURA DE DADOS RECOMENDADA Para se determinar a melhor estrutura de dados para um determinado problema se é necessário entender os requisitos do mesmo No caso do problema proposto na introdução devese encontrar uma estrutura de dados capaz de lidar com grandez volumes de dados e tem a intenção de operar em cima de um sistema de recomendação Não se há muita informação sobre os requisitos do sistema mas se é possível inferir algumas informações a partir do que um sistema de recomendação é capaz de fazer Um sistema de recomendação pode ser definido como um conjunto de algoritmos e estruturas que analisam dados de usuários e produtos para prever preferências e sugerir itens relevantes Esses sistemas geralmente se baseiam em técnicas de filtragem colaborativa filtragem baseada em conteúdo ou modelos híbridos exigindo processamento eficiente de grandes quantidades de informações como histórico de compras avaliações cliques e categorias de produtos RICCI ROKACH SHAPIRA 2022 Portanto podese concluir que o sistema referido necessita de uma estrutura de dados capaz de 1 Fornecer alta eficiência nas operações de busca e atualização para a rápida localização de usuários ou produtos 2 Alta capacidade de lidar com grande volume de dados sem perder o desempenho 3 Suporte à ordenação e filtragem de dados para encontrar produtos baseados em preço relevância ou similaridade 4 Facilidade de integração com sistemas de inteligência artificial o que geralmente requer uma capacidade de hierarquização ou indexação para otimizar o acesso Dentre as diversas estruturas de dados possíveis duas se destacam o uso de árvores principalmente as balanceadas e o uso de tabelas hash cada uma com seus pontos positivos e negativos As tabelas hash se destacam por oferecerem acesso rápido e performático tendo como complexidade média de tempo para busca e inserção de O1 o que no caso do problema apresentado permite uma rápida atualização e busca de um produto no entanto peca para ordenação e depende bastante da função hash o que pode impactar no desempenho As árvores principalmente as balanceadas se destacam por organizarem os dados de forma hierárquica e organizada permitindo fácil ordenação nas operações realizadas na mesma No caso do problema apresentado a árvore poderia ser usada para facilmente encontrar produtos classificados por preço relevância ou similaridade No entanto no quesito de desempenho de tempo buscas e inserções são mais custosas tendo complexidade média de Ologn Portanto a melhor estrutura de dados dentre as duas baseados nas necessidades do problema seria a utilização de árvores balanceadas como AVL ou RedBlack Trees dado que sistemas de recomendação necessitam de consultas ordenadas por preço ou relevância e operações de intervalo Vale ressaltar também que em um sistema real operando em produção se é possível utilizar de uma estrutrura híbrida em que tabelas hash são usadas para busca rápida do produto e árvores são utilizadas para indexação buscas intervaladas e ordenação 3 SEGUNDA QUESTÃO ALGORITMO DE BUSCA EFICIENTE A vantagem de se utilizar uma árvore para a organização dos dados do problema proposto é que a mesma contém os dados de forma ordenada o que permite a utilização de um algoritmo bastante comum para busca eficiente em dados ordenados a busca binária A principal ideia desse algoritmo é de aproveitar o fato da ordenação para saber aonde a chave a ser buscada está e essencialmente descartar metade dos dados a cada etapa da busca Em um vetor linear a busca consiste em comparar a chave a ser buscada com a chave localizada na posição média do vetor caso a chave seja maior realizar a mesma busca na direção em que os valores das chaves crescem caso contrário realizar a mesma busca na outra direção Em uma árvore balanceada a diferença não é muito grande O que muda é que ao invés de percorrer um lado do vetor se percorre uma direção da árvore Segue o pseudocódigo do algoritmo de busca de chave exata em uma árvore balanceada fun buscarBSTraiz chave atual raiz representa o nó da árvore onde a busca é feita enquanto atual nulo se chave atualchave retornar atual encontrado senão se chave atualchave atual atualesq senão atual atualdir retornar nulo A chave a ser buscada pode variar dependendo do critério a ser buscado por exemplo Uma implementação para busca de um determinado intervalo de preço por exemplo seria a seguinte fun buscarIntervaloBSTraiz A B saída A é o menor valor do intervalo e B o maior se raiz nulo retornar se A raizchave Ainda há valores maiores que A na esquerda buscarIntervaloBSTraizesq A B saída se A raizchave B Chave está no intervalor saídaadicionarraizvalor ex referência ao produto se raizchave B Ainda há valores menores que B na direita buscarIntervaloBSTraizdir A B saída 4 TERCEIRA QUESTÃO IMPORTÂNCIA DAS ÁRVORES Como mencionado na questão 1 as árvores são caracterizadas principalmente por permitirem organizar os dados de forma hierarquizada e eficiente permitindo busca inserção e remoção rápidas com complexidade Ologn Em um sistema de recomendação a utilização de árvores permite organizar os dados que servem de base para as recomendações de forma ordenada e hierarquizada Com a arquitetura correta se pode por exemplo Organizar produtos com base em alguma característica relevante como por exemplo preço relevância ou categoria facilitando filtro e ordenação Facilitar a execução de buscas por intervalo como demonstrado na questão 2 o que permite uma busca eficiente do tipo produtos entre os preços X e Y Atualizar o sistema dinamicamente rebalanceando a árvore e mantendo o desempenho Em conclusão a utilização de árvores num sistema de recomendação o torna mais rápido eficiente e inteligente facilitando a execução de algoritmos capazes de analisar os dados e determinar conexões para basear as recomendações 5 QUARTA QUESTÃO DESAFIOS DE GRANDES VOLUMES DE DADOS Um dos maiores desafios da computação nos tempos atuais se dá ao fato de que pessoas de todo o mundo têm acesso a computadores e à internet Dessa forma qualquer sistema que for construído deve levar em consideração o grande número de acessos simultâneos e a quantidade massiva de dados que serão gerados e processados Como existe um limite de processamento dos servidores desses sistemas existe uma necessidade de mantêlos eficientes para que eles sejam capazes de processar todos esses dados sem perder o desempenho esperado pelo usuário final Em resumo grandes volumes de dados necessitam de eficiência no tempo de processamento dos dados para evitar demora no recebimento dos resultados esperados otimização no consumo e armazenamento dos dados para garantir que nenhuma informação é perdida e garantia de escalabilidade e concorrência de acesso garantindo que múltiplas pessoas possam acessar o sistema sem perda de desempenho e que o sistema possa escalar conforme mais pessoas o usem As estruturas de dados são fundamentais para garantir que os pontos citados anteriormente sejam mitigados Essas estruturas em sua essência determinam como os dados serão armazenados manipulados e organizados dentro do sistema Estruturas eficientes como por exemplo as tabelas hash e árvores balanceadas permitem reduzir o tempo de processamento de dados busca enquanto minimizam o consumo de memória Além disso essas estruturas facilitam a distribuição e indexação dos dados permitindo que o sistema possa ser facilmente escalado 6 REFERÊNCIAS CORMEN Thomas H LEISERSON Charles E RIVEST Ronald L STEIN Clifford Algoritmos teoria e prática 3 ed Rio de Janeiro Elsevier 2012 LAFORE Robert Data Structures Algorithms in Java 2 ed Indianapolis Sams Publishing 2002 RICCI Francesco ROKACH Lior SHAPIRA Bracha Recommender Systems Handbook 3 ed Cham Springer 2022 TENENBAUM Aaron M LANGSAM Yedidyah AUGENSTEIN Moshe J Estruturas de Dados Usando C 2 ed São Paulo Pearson 2009 UNIVERSIDADE ESTÁCIO DE SÁ VICTOR HUGO DE BRITO DE PAULA ATIVIDADE DE ESTRUTURA DE DADOS PROFESSOR Rodrigo Otávio do Canto Braga 2025 1 INTRODUÇÃO Este trabalho visa responder quatro questões relacionadas a uma situação proposta O contexto das perguntas a serem respondidas é Uma empresa de ecommerce está desenvolvendo um novo sistema de recomendação de produtos para seus clientes O sistema precisa armazenar e processar grandes volumes de dados sobre os produtos as preferências dos clientes e as interações entre eles A partir dessa contextualização as quatro questões seguintes serão respondidas Questão 1 Qual estrutura de dados você recomendaria para armazenar as informações sobre os produtos Justifique sua escolha considerando os tipos de operações que serão realizadas sobre esses dados inserção busca remoção Questão 2 Descreva como você implementaria um algoritmo de busca eficiente para encontrar produtos que correspondam a um determinado critério de pesquisa Questão 3 Explique a importância das árvores em estruturas de dados e como elas podem ser utilizadas para implementar o sistema de recomendação Questão 4 Discuta os desafios de trabalhar com grandes volumes de dados e como as estruturas de dados podem ajudar a resolver esses problemas Este trabalho contará com quatro seções além da introdução e uma seção de referências utilizadas para as respostas do trabalho 2 PRIMEIRA QUESTÃO ESTRUTURA DE DADOS RECOMENDADA Para se determinar a melhor estrutura de dados para um determinado problema se é necessário entender os requisitos do mesmo No caso do problema proposto na introdução devese encontrar uma estrutura de dados capaz de lidar com grandez volumes de dados e tem a intenção de operar em cima de um sistema de recomendação Não se há muita informação sobre os requisitos do sistema mas se é possível inferir algumas informações a partir do que um sistema de recomendação é capaz de fazer Um sistema de recomendação pode ser definido como um conjunto de algoritmos e estruturas que analisam dados de usuários e produtos para prever preferências e sugerir itens relevantes Esses sistemas geralmente se baseiam em técnicas de filtragem colaborativa filtragem baseada em conteúdo ou modelos híbridos exigindo processamento eficiente de grandes quantidades de informações como histórico de compras avaliações cliques e categorias de produtos RICCI ROKACH SHAPIRA 2022 Portanto podese concluir que o sistema referido necessita de uma estrutura de dados capaz de 1 Fornecer alta eficiência nas operações de busca e atualização para a rápida localização de usuários ou produtos 2 Alta capacidade de lidar com grande volume de dados sem perder o desempenho 3 Suporte à ordenação e filtragem de dados para encontrar produtos baseados em preço relevância ou similaridade 4 Facilidade de integração com sistemas de inteligência artificial o que geralmente requer uma capacidade de hierarquização ou indexação para otimizar o acesso Dentre as diversas estruturas de dados possíveis duas se destacam o uso de árvores principalmente as balanceadas e o uso de tabelas hash cada uma com seus pontos positivos e negativos As tabelas hash se destacam por oferecerem acesso rápido e performático tendo como complexidade média de tempo para busca e inserção de O1 o que no caso do problema apresentado permite uma rápida atualização e busca de um produto no entanto peca para ordenação e depende bastante da função hash o que pode impactar no desempenho As árvores principalmente as balanceadas se destacam por organizarem os dados de forma hierárquica e organizada permitindo fácil ordenação nas operações realizadas na mesma No caso do problema apresentado a árvore poderia ser usada para facilmente encontrar produtos classificados por preço relevância ou similaridade No entanto no quesito de desempenho de tempo buscas e inserções são mais custosas tendo complexidade média de Ologn Portanto a melhor estrutura de dados dentre as duas baseados nas necessidades do problema seria a utilização de árvores balanceadas como AVL ou RedBlack Trees dado que sistemas de recomendação necessitam de consultas ordenadas por preço ou relevância e operações de intervalo Vale ressaltar também que em um sistema real operando em produção se é possível utilizar de uma estrutrura híbrida em que tabelas hash são usadas para busca rápida do produto e árvores são utilizadas para indexação buscas intervaladas e ordenação 3 SEGUNDA QUESTÃO ALGORITMO DE BUSCA EFICIENTE A vantagem de se utilizar uma árvore para a organização dos dados do problema proposto é que a mesma contém os dados de forma ordenada o que permite a utilização de um algoritmo bastante comum para busca eficiente em dados ordenados a busca binária A principal ideia desse algoritmo é de aproveitar o fato da ordenação para saber aonde a chave a ser buscada está e essencialmente descartar metade dos dados a cada etapa da busca Em um vetor linear a busca consiste em comparar a chave a ser buscada com a chave localizada na posição média do vetor caso a chave seja maior realizar a mesma busca na direção em que os valores das chaves crescem caso contrário realizar a mesma busca na outra direção Em uma árvore balanceada a diferença não é muito grande O que muda é que ao invés de percorrer um lado do vetor se percorre uma direção da árvore Segue o pseudocódigo do algoritmo de busca de chave exata em uma árvore balanceada fun buscarBSTraiz chave atual raiz representa o nó da árvore onde a busca é feita enquanto atual nulo se chave atualchave retornar atual encontrado senão se chave atualchave atual atualesq senão atual atualdir retornar nulo A chave a ser buscada pode variar dependendo do critério a ser buscado por exemplo Uma implementação para busca de um determinado intervalo de preço por exemplo seria a seguinte fun buscarIntervaloBSTraiz A B saída A é o menor valor do intervalo e B o maior se raiz nulo retornar se A raizchave Ainda há valores maiores que A na esquerda buscarIntervaloBSTraizesq A B saída se A raizchave B Chave está no intervalor saídaadicionarraizvalor ex referência ao produto se raizchave B Ainda há valores menores que B na direita buscarIntervaloBSTraizdir A B saída 4 TERCEIRA QUESTÃO IMPORTÂNCIA DAS ÁRVORES Como mencionado na questão 1 as árvores são caracterizadas principalmente por permitirem organizar os dados de forma hierarquizada e eficiente permitindo busca inserção e remoção rápidas com complexidade Ologn Em um sistema de recomendação a utilização de árvores permite organizar os dados que servem de base para as recomendações de forma ordenada e hierarquizada Com a arquitetura correta se pode por exemplo Organizar produtos com base em alguma característica relevante como por exemplo preço relevância ou categoria facilitando filtro e ordenação Facilitar a execução de buscas por intervalo como demonstrado na questão 2 o que permite uma busca eficiente do tipo produtos entre os preços X e Y Atualizar o sistema dinamicamente rebalanceando a árvore e mantendo o desempenho Em conclusão a utilização de árvores num sistema de recomendação o torna mais rápido eficiente e inteligente facilitando a execução de algoritmos capazes de analisar os dados e determinar conexões para basear as recomendações 5 QUARTA QUESTÃO DESAFIOS DE GRANDES VOLUMES DE DADOS Um dos maiores desafios da computação nos tempos atuais se dá ao fato de que pessoas de todo o mundo têm acesso a computadores e à internet Dessa forma qualquer sistema que for construído deve levar em consideração o grande número de acessos simultâneos e a quantidade massiva de dados que serão gerados e processados Como existe um limite de processamento dos servidores desses sistemas existe uma necessidade de mantêlos eficientes para que eles sejam capazes de processar todos esses dados sem perder o desempenho esperado pelo usuário final Em resumo grandes volumes de dados necessitam de eficiência no tempo de processamento dos dados para evitar demora no recebimento dos resultados esperados otimização no consumo e armazenamento dos dados para garantir que nenhuma informação é perdida e garantia de escalabilidade e concorrência de acesso garantindo que múltiplas pessoas possam acessar o sistema sem perda de desempenho e que o sistema possa escalar conforme mais pessoas o usem As estruturas de dados são fundamentais para garantir que os pontos citados anteriormente sejam mitigados Essas estruturas em sua essência determinam como os dados serão armazenados manipulados e organizados dentro do sistema Estruturas eficientes como por exemplo as tabelas hash e árvores balanceadas permitem reduzir o tempo de processamento de dados busca enquanto minimizam o consumo de memória Além disso essas estruturas facilitam a distribuição e indexação dos dados permitindo que o sistema possa ser facilmente escalado 6 REFERÊNCIAS CORMEN Thomas H LEISERSON Charles E RIVEST Ronald L STEIN Clifford Algoritmos teoria e prática 3 ed Rio de Janeiro Elsevier 2012 LAFORE Robert Data Structures Algorithms in Java 2 ed Indianapolis Sams Publishing 2002 RICCI Francesco ROKACH Lior SHAPIRA Bracha Recommender Systems Handbook 3 ed Cham Springer 2022 TENENBAUM Aaron M LANGSAM Yedidyah AUGENSTEIN Moshe J Estruturas de Dados Usando C 2 ed São Paulo Pearson 2009

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®