Skip to content

About

Implementation of classic sorting algorithms for file-based data structures and linked lists, developed in Java, including two interactive sorting visualizations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

5 Commits

Folders and files

Repository files navigation

📊 Sorting Algorithms with Files and Linked Lists

Java JavaFX Status Algorithms

Projeto desenvolvido para a disciplina de Pesquisa e Ordenação, reunindo implementações de algoritmos de ordenação em arquivos, listas encadeadas e uma visualização gráfica em JavaFX.


📖 Sobre o Projeto

Este repositório reúne dois trabalhos relacionados ao estudo de algoritmos de ordenação:

  • Sorting File Engine: implementação de métodos de ordenação aplicados em arquivos de registros usando RandomAccessFile.
  • Linked List Sorting: implementação de métodos de ordenação utilizando lista duplamente encadeada.
  • Sorting Visualization: aplicação gráfica em JavaFX para visualizar o funcionamento de algoritmos de ordenação.

O objetivo principal é comparar o comportamento dos algoritmos em diferentes estruturas de armazenamento e compreender seus custos de comparação, movimentação e execução.


🚀 Funcionalidades

✅ Geração de arquivos ordenados, reversos e randômicos

✅ Ordenação de registros armazenados em arquivo

✅ Implementação de algoritmos em lista encadeada

✅ Visualização gráfica da execução dos algoritmos

✅ Cálculo de comparações e movimentações

✅ Geração de tabela de resultados

✅ Organização modular por tipo de implementação


📚 Algoritmos Implementados

  • Insertion Sort
  • Binary Insertion Sort
  • Selection Sort
  • Bubble Sort
  • Shake Sort
  • Shell Sort
  • Heap Sort
  • Quick Sort com pivô
  • Quick Sort sem pivô
  • Merge Sort
  • Counting Sort
  • Bucket Sort
  • Radix Sort
  • Comb Sort
  • Gnome Sort
  • Tim Sort

🛠️ Tecnologias Utilizadas

  • ☕ Java
  • 🎨 JavaFX
  • 📦 Maven
  • 🔗 Listas Encadeadas
  • 📂 Manipulação de Arquivos
  • 📊 Estruturas de Dados
  • ⚙️ Algoritmos de Ordenação

📁 Estrutura do Projeto

sorting-algorithms-files-and-linked-lists/
│
├── sorting-file-engine/
│   └── src/
│       ├── Arquivo.java
│       ├── Main.java
│       ├── Principal.java
│       └── Registro.java
│
├── linked-list-sorting/
│   └── src/
│       ├── Lista.java
│       ├── Main.java
│       └── No.java
│
├── sorting-visualization/
│   ├── balde/
│   │   └── balde.png
│   ├── src/main/java/
│   └── pom.xml
│
├── docs/
│   └── results/
│       └── Tabela1.txt
│
├── README.md
└── .gitignore

🧠 Conceitos Aplicados

Durante o desenvolvimento foram aplicados conceitos importantes de Ciência da Computação:

  • Estruturas de Dados
  • Listas Duplamente Encadeadas
  • Manipulação de Arquivos Binários
  • Algoritmos de Ordenação
  • Análise de Comparações e Movimentações
  • Programação Orientada a Objetos
  • Interface gráfica com JavaFX
  • Modularização de código

📈 Análise de Desempenho

O projeto compara algoritmos em diferentes cenários de entrada:

Cenário Descrição
Ordenado Dados já em ordem crescente
Reverso Dados em ordem decrescente
Randômico Dados embaralhados

Também são avaliados indicadores como:

  • Número de comparações
  • Número de movimentações
  • Comportamento em arquivos
  • Comportamento em listas encadeadas

🎯 Objetivos de Aprendizado

Este projeto teve como objetivo praticar:

  • Implementação manual de algoritmos clássicos
  • Comparação entre métodos de ordenação
  • Uso de arquivos como estrutura de armazenamento
  • Uso de listas encadeadas
  • Visualização gráfica de algoritmos
  • Organização de projetos Java para portfólio

👨‍💻 Autor

Desenvolvido por Gustavo Imada.


⭐ Caso este projeto tenha sido útil ou interessante, considere deixar uma estrela no repositório.

About

Implementation of classic sorting algorithms for file-based data structures and linked lists, developed in Java, including two interactive sorting visualizations.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages