Mudanças entre as edições de "Algoritmo de Ordenamento em Vetor"
Linha 26: | Linha 26: | ||
Implementar em C++ a versão do algoritmo Insert sort de acordo com o sugerido na wikipedia. | Implementar em C++ a versão do algoritmo Insert sort de acordo com o sugerido na wikipedia. | ||
+ | |||
+ | =Exercício de Revisão 1= | ||
+ | |||
+ | Considere um vetor global de estruturas já totalmente inicializado. Este vetor deve ser ordenado baseando-se no userID (um valor inteiro). Construir: | ||
+ | :uma função para ordenar o vetor usando o algoritmo insert sort; | ||
+ | :uma função para ordenar o vetor usando o algoritmo bubble sort; | ||
+ | :uma função para fazer busca binária no vetor basendo-se em um userID fornecido como parâmetro. A função deve retornar -1 se não encontrado ou o índice da estrutura encontrada. | ||
+ | |||
+ | <syntaxhighlight lang=C> | ||
+ | #include <iostream> | ||
+ | #include <string> | ||
+ | |||
+ | using namespace std; | ||
+ | |||
+ | struct tipo_usuario{ | ||
+ | string nome; | ||
+ | int userid; | ||
+ | }tabelaUsuarios[5] = { | ||
+ | {"Eraldo", 123}, | ||
+ | {"Silvana", 254}, | ||
+ | {"Lara", 57}, | ||
+ | {"Maria", 96}, | ||
+ | {"Vica",755} | ||
+ | }; | ||
+ | |||
+ | void printTabela() | ||
+ | { | ||
+ | for (int i=0;i<5;i++){ | ||
+ | cout << tabelaUsuarios[i].nome << " ID -> " << tabelaUsuarios[i].userid << endl; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void insertSort(struct tipo_usuario tabela[], int tamanho) | ||
+ | { | ||
+ | |||
+ | } | ||
+ | |||
+ | void bubbleSort(struct tipo_usuario tabela[], int tamanho) | ||
+ | { | ||
+ | } | ||
+ | |||
+ | int binarySearchTabela(int userID){ | ||
+ | //retorna o índice correspondente ao userID ou -1 se não encontrado | ||
+ | } | ||
+ | |||
+ | int main(){ | ||
+ | insertSort(); | ||
+ | printTabela(); | ||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | </syntaxhighlight> |
Edição das 11h43min de 26 de abril de 2022
Algoritmo Bubble Sort
Este algoritmo compara do início ao fim do vetor, pares adjacentes e ordena (troca valores) se for o caso.
Ver aspectos conceituais a animação aqui
Exercício 1:
Implementar em C++ a versão não otimizada do algoritmo Bubble sort de acordo com o sugerido na wikipedia.
Exercício 2:
Na versão otimizada evita-se continuar a análise de uma parte do vetor sabendo-se que já está ordenado para frente.
Implementar em C++ a versão otimizada do algoritmo Bubble sort de acordo com o sugerido na wikipedia.
Algoritmo Insert Sort
Este algoritmo é similar a organização ordenada que fazemos em um jogo de cartas. A ideia é sucessivamente ordenar o vetor da "esquerda" para a direita.
Ver aspectos conceituais a animação aqui
Exercício 3:
Implementar em C++ a versão do algoritmo Insert sort de acordo com o sugerido na wikipedia.
Exercício de Revisão 1
Considere um vetor global de estruturas já totalmente inicializado. Este vetor deve ser ordenado baseando-se no userID (um valor inteiro). Construir:
- uma função para ordenar o vetor usando o algoritmo insert sort;
- uma função para ordenar o vetor usando o algoritmo bubble sort;
- uma função para fazer busca binária no vetor basendo-se em um userID fornecido como parâmetro. A função deve retornar -1 se não encontrado ou o índice da estrutura encontrada.
#include <iostream>
#include <string>
using namespace std;
struct tipo_usuario{
string nome;
int userid;
}tabelaUsuarios[5] = {
{"Eraldo", 123},
{"Silvana", 254},
{"Lara", 57},
{"Maria", 96},
{"Vica",755}
};
void printTabela()
{
for (int i=0;i<5;i++){
cout << tabelaUsuarios[i].nome << " ID -> " << tabelaUsuarios[i].userid << endl;
}
}
void insertSort(struct tipo_usuario tabela[], int tamanho)
{
}
void bubbleSort(struct tipo_usuario tabela[], int tamanho)
{
}
int binarySearchTabela(int userID){
//retorna o índice correspondente ao userID ou -1 se não encontrado
}
int main(){
insertSort();
printTabela();
return 0;
}