Skip to content

S4-2024/Lista1

Repository files navigation

Gabrielle Soares- 422221763  Anna Clara - 422142003

Professores: Rafaela Moreira & Daniel Poyatos

Códigos

Sobre

Tema: Esta atividade foca na resolução de um desafio específico enfrentado por uma empresa fictícia.
Objetivo: Utilizar os conhecimentos adquiridos em sala de aula sobre algoritmos de ordenação e programação em Java, de forma abrangente.

Em nosso projeto, optamos por implementar os algoritmos de SelectionSort e BubbleSort, devido à sua simplicidade e eficácia na resolução do problema.

BubbleSort

O algoritmo de ordenação Bubblesort visa percorrer um conjunto de elementos várias vezes, e a cada viagem, o algoritmo "flutua" para o topo o maior elemento da sequência. Ele verifica a ordem dos dados dois a dois, e trocando-os de lugar se necessário.

Complexidade
Complexidade pior caso O(n²)
Complexidade caso médio O(n²)
Complexidade melhor caso O(n)
Implementação (Java)
for (int i = 0; i < caracteres.length - 1; i++) {
            for (int j = 0; j < caracteres.length - i - 1; j++) {
                if (caracteres[j] > caracteres[j + 1]) {
                    char temp = caracteres[j];
                    caracteres[j] = caracteres[j + 1];
                    caracteres[j + 1] = temp;
                }
            }
        }

SelectionSort

O algoritmo de ordenação SelectionSort visa sempre passar o menor valor do vetor para a primeira posição (ou maior, depende da necessidade), depois o do segundo menor valor para a posição, e assim continuadamente com os n-1 elementos restantes, até finalizar. Ele é composto por dois laços, um laço externo e outro interno. O externo serve para controlar o índice inicial e o interno percorre todo o vetor.

Complexidade pior caso O(n²)
Complexidade caso médio O(n²)
Complexidade melhor caso O(n²)
for (int i = 0; i < nomes.size() - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < nomes.size(); j++) {
                if (nomes.get(j).length() < nomes.get(minIndex).length()) {
                    minIndex = j;
                }
            }

👾 Sobre a lista

PDF

Uma empresa de aplicativos de jogos, contratou você para desenvolver uma solução para o seguinte problema:

  • Dado o arquivo “JogosDesordenados.csv” contendo nomes de jogos classificados em:
  1. Ação
  2. Cartas
  3. Corrida
  4. Estratégia
  5. RPG
  6. Esportes
  7. Palavras
  8. Quebra-Cabeça
  • Deseja-se ordená-lo de duas formas: pela classificação e pela avaliação.
  • Para fazer as ordenações, utilize dois algoritmos diferentes. Ex: SelectionSort, BubbleSort.
  • Crie um menu com as seguintes opções:

[1] Ler arquivo
[2] Ordenar em Categoria
[3] Ordenar em Avaliação
[4] Sair
.

→ Opção 1:

  • Ler o arquivo “JogosDesordenados.csv” e salvar os dados em um vetor do tipo Item. Item é uma classe com os atributos:
    • Jogos(String): corresponde aos jogos mais acessados na Web (primeira coluna do arquivo).
    • Categoria(String): corresponde às categorias dos jogos (segunda coluna do arquivo).
    • Avaliacao(double): corresponde à avaliação dos usuários em relação aos jogos, varia de 0 e 5 (terceira coluna do arquivo).

→ Opção 2:

  • Ordenar o nome dos jogos pela categoria (ordem alfabética).
  • Salvar o vetor de Item ordenado em um arquivo denominado: “JogosOrdenadosporCategoria.csv”.

→ Opção 3:

  • Ordenar o nome dos jogos de acordo com a avaliação (ordem decrescente) de cada uma das categorias.
  • Salvar o vetor de Item ordenado em um arquivo denominado: “JogosOrdenadosporAvaliacao.csv”.

→ Opção 4:

  • Fechar o programa.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published