# joaoptoaldo/metodos-pesquisa-ordenacao architecture

> Architecture diagram of the GitHub repository joaoptoaldo/metodos-pesquisa-ordenacao, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/joaoptoaldo/metodos-pesquisa-ordenacao
- Repository: https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao

## Overview

This repository is a collection of study implementations for sorting, searching, and hash-based lookup, rather than one integrated application. A representative sorting workflow generates a list, lets a console menu choose an algorithm or compare algorithms, and reports execution metrics. Search examples load or generate data before searching; telephony exercises index sessions by phone number. The map preserves these distinct examples. Relationships are limited to calls or references shown in excerpts and the source index; unsampled implementations are represented only where their paths and subsystem are clear.

Main entry points: [`01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java`](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java) (Sorting controller), [`01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java`](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java) (Sorting menu), [`03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java`](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java) (Phone service), [`desafios/desafioSessaoTelefoniaCsharp/Program.cs`](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Program.cs) (Session search app)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_sorting["Sorting studies"]
  node_java_main["Java entry<br/>[Main.java]"]
  node_java_menu["Sorting menu<br/>[MenuView.java]"]
  node_java_controller["Sorting controller"]
  node_java_generator["List generator<br/>[GeradorLista.java]"]
  node_java_algorithms["Sorting algorithms"]
  node_java_result["Sort metrics"]
  node_cs_controller["C&#35; sort controller"]
  node_cs_metrics["C&#35; sort metrics"]
  node_legacy_sort["Instrumented sorts<br/>[Ordenacao.java]"]
end

subgraph group_searching["Search studies"]
  node_search_gui["Search interface<br/>[FormPrincipal.cs]"]
  node_search_methods["Search methods<br/>[MetodosPesquisa.cs]"]
  node_data_search["File data search<br/>[DadoController.cs]"]
  node_java_data_search["Java data search"]
end

subgraph group_hash["Hash exercises"]
  node_hash_demo["Hash examples<br/>[Program.cs]"]
  node_hash_table_demo["Hash table demo<br/>[Program.cs]"]
end

subgraph group_telephony["Telephony lookup"]
  node_phone_user(("Phone user"))
  node_phone_client_ui["Client interface<br/>[JFrameCliente.java]"]
  node_phone_client["Remote client"]
  node_phone_service["Phone service"]
  node_phone_impl["Service implementation"]
  node_phone_table[("Session hash table<br/>[TabelaHash.java]")]
  node_session_program["Session search app<br/>[Program.cs]"]
  node_session_reader["Session loader<br/>[LeitorSessoes.cs]"]
  node_session_table[("Session index<br/>[TabelaSessoes.cs]")]
end

node_user(("User"))

node_user -->|"uses"| node_java_menu
node_java_main -->|"starts"| node_java_menu
node_java_menu -->|"dispatches"| node_java_controller
node_java_controller -->|"generates"| node_java_generator
node_java_controller -->|"runs"| node_java_algorithms
node_java_controller -->|"returns metrics"| node_java_result
node_java_menu -->|"displays"| node_java_result
node_cs_controller -->|"returns metrics"| node_cs_metrics
node_search_gui -->|"calls"| node_search_methods
node_data_search -.->|"supports lookup"| node_user
node_java_data_search -.->|"supports lookup"| node_user
node_phone_user -.->|"uses"| node_phone_client_ui
node_phone_client_ui -->|"calls"| node_phone_client
node_phone_client -->|"looks up"| node_phone_service
node_phone_service -->|"delegates"| node_phone_impl
node_phone_service -->|"uses"| node_phone_table
node_session_program -->|"loads sessions"| node_session_reader
node_session_program -->|"queries"| node_session_table
node_session_reader -->|"populates"| node_session_table

click node_java_main "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/Main.java"
click node_java_menu "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java"
click node_java_controller "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java"
click node_java_generator "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/model/GeradorLista.java"
click node_java_algorithms "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/tree/main/01-ordenacao/java/OrdenacaoMVC/src/model/algoritmos"
click node_java_result "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/model/ResultadoOrdenacao.java"
click node_cs_controller "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/csharp/OrdenacaoMVC/src/Controller/OrdenacaoController.cs"
click node_cs_metrics "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/csharp/OrdenacaoMVC/src/Model/ResultadoOrdenacao.cs"
click node_legacy_sort "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/paraContinuarEmLab/src/controller/Ordenacao.java"
click node_search_gui "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/02-pesquisa/PesquisaAlgoritmos/PesquisaView/FormPrincipal.cs"
click node_search_methods "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/02-pesquisa/PesquisaAlgoritmos/PesquisaLib/MetodosPesquisa.cs"
click node_data_search "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafio001/BuscaOrdenacaoMVC_CSharp/src/Controller/DadoController.cs"
click node_java_data_search "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafio001/BuscaOrdenacaoMVC_Java/src/controller/DadoController.java"
click node_hash_demo "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/Csharp/Program.cs"
click node_hash_table_demo "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/04-hash-table/HashTable/Program.cs"
click node_phone_client_ui "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/view/JFrameCliente.java"
click node_phone_client "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/service/ClienteTelefonia.java"
click node_phone_service "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java"
click node_phone_impl "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServicoTelefoniaImpl.java"
click node_phone_table "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/model/TabelaHash.java"
click node_session_program "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Program.cs"
click node_session_reader "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Services/LeitorSessoes.cs"
click node_session_table "https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Repositories/TabelaSessoes.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_java_main,node_java_menu,node_java_controller,node_java_generator,node_java_algorithms,node_java_result,node_cs_controller,node_cs_metrics,node_legacy_sort,node_user toneBlue
class node_search_gui,node_search_methods,node_data_search,node_java_data_search toneAmber
class node_hash_demo,node_hash_table_demo toneMint
class node_phone_user,node_phone_client_ui,node_phone_client,node_phone_service,node_phone_impl,node_phone_table,node_session_program,node_session_reader,node_session_table toneRose
```

## Components

### Sorting studies

- [Java entry](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/Main.java): `01-ordenacao/java/OrdenacaoMVC/src/Main.java`
- [Sorting menu](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java): `01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java`
- [Sorting controller](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java): `01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java`
- [List generator](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/model/GeradorLista.java): `01-ordenacao/java/OrdenacaoMVC/src/model/GeradorLista.java`
- [Sorting algorithms](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/tree/main/01-ordenacao/java/OrdenacaoMVC/src/model/algoritmos): `01-ordenacao/java/OrdenacaoMVC/src/model/algoritmos`
- [Sort metrics](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/java/OrdenacaoMVC/src/model/ResultadoOrdenacao.java): `01-ordenacao/java/OrdenacaoMVC/src/model/ResultadoOrdenacao.java`
- [C# sort controller](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/csharp/OrdenacaoMVC/src/Controller/OrdenacaoController.cs): `01-ordenacao/csharp/OrdenacaoMVC/src/Controller/OrdenacaoController.cs`
- [C# sort metrics](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/csharp/OrdenacaoMVC/src/Model/ResultadoOrdenacao.cs): `01-ordenacao/csharp/OrdenacaoMVC/src/Model/ResultadoOrdenacao.cs`
- [Instrumented sorts](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/01-ordenacao/paraContinuarEmLab/src/controller/Ordenacao.java): `01-ordenacao/paraContinuarEmLab/src/controller/Ordenacao.java`

### Search studies

- [Search interface](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/02-pesquisa/PesquisaAlgoritmos/PesquisaView/FormPrincipal.cs): `02-pesquisa/PesquisaAlgoritmos/PesquisaView/FormPrincipal.cs`
- [Search methods](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/02-pesquisa/PesquisaAlgoritmos/PesquisaLib/MetodosPesquisa.cs): `02-pesquisa/PesquisaAlgoritmos/PesquisaLib/MetodosPesquisa.cs`
- [File data search](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafio001/BuscaOrdenacaoMVC_CSharp/src/Controller/DadoController.cs): `desafios/desafio001/BuscaOrdenacaoMVC_CSharp/src/Controller/DadoController.cs`
- [Java data search](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafio001/BuscaOrdenacaoMVC_Java/src/controller/DadoController.java): `desafios/desafio001/BuscaOrdenacaoMVC_Java/src/controller/DadoController.java`

### Hash exercises

- [Hash examples](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/Csharp/Program.cs): `03-hash/Csharp/Program.cs`
- [Hash table demo](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/04-hash-table/HashTable/Program.cs): `04-hash-table/HashTable/Program.cs`

### Telephony lookup

- **Phone user**
- [Client interface](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/view/JFrameCliente.java): `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/view/JFrameCliente.java`
- [Remote client](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/service/ClienteTelefonia.java): `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/service/ClienteTelefonia.java`
- [Phone service](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java): `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java`
- [Service implementation](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServicoTelefoniaImpl.java): `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServicoTelefoniaImpl.java`
- [Session hash table](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/model/TabelaHash.java): `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/model/TabelaHash.java`
- [Session search app](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Program.cs): `desafios/desafioSessaoTelefoniaCsharp/Program.cs`
- [Session loader](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Services/LeitorSessoes.cs): `desafios/desafioSessaoTelefoniaCsharp/Services/LeitorSessoes.cs`
- [Session index](https://github.com/joaoptoaldo/metodos-pesquisa-ordenacao/blob/main/desafios/desafioSessaoTelefoniaCsharp/Repositories/TabelaSessoes.cs): `desafios/desafioSessaoTelefoniaCsharp/Repositories/TabelaSessoes.cs`

### Other components

- **User**

## Connections

- User → Sorting menu: uses (evidence: `01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java`)
- Java entry → Sorting menu: starts (evidence: `01-ordenacao/java/OrdenacaoMVC/src/Main.java`)
- Sorting menu → Sorting controller: dispatches (evidence: `01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java`)
- Sorting controller → List generator: generates (evidence: `01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java`)
- Sorting controller → Sorting algorithms: runs (evidence: `01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java`)
- Sorting controller → Sort metrics: returns metrics (evidence: `01-ordenacao/java/OrdenacaoMVC/src/controller/OrdenacaoController.java`)
- Sorting menu → Sort metrics: displays (evidence: `01-ordenacao/java/OrdenacaoMVC/src/view/MenuView.java`)
- C# sort controller → C# sort metrics: returns metrics (evidence: `01-ordenacao/csharp/OrdenacaoMVC/src/Controller/OrdenacaoController.cs`)
- Search interface → Search methods: calls (evidence: `02-pesquisa/PesquisaAlgoritmos/PesquisaView/FormPrincipal.cs`)
- File data search → User: supports lookup
- Java data search → User: supports lookup
- Phone user → Client interface: uses
- Client interface → Remote client: calls (evidence: `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/view/JFrameCliente.java`)
- Remote client → Phone service: looks up (evidence: `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/cliente/service/ClienteTelefonia.java`)
- Phone service → Service implementation: delegates (evidence: `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java`)
- Phone service → Session hash table: uses (evidence: `03-hash/ProblemaSessaoTelefonia/desafioTelefonia/src/servidor/service/ServidorTelefonia.java`)
- Session search app → Session loader: loads sessions (evidence: `desafios/desafioSessaoTelefoniaCsharp/Program.cs`)
- Session search app → Session index: queries (evidence: `desafios/desafioSessaoTelefoniaCsharp/Program.cs`)
- Session loader → Session index: populates (evidence: `desafios/desafioSessaoTelefoniaCsharp/Services/LeitorSessoes.cs`)
