Você está na página 1de 2

UTFPR​ ​-​ ​Universidade​ ​Tecnológica​ ​Federal​ ​do​ ​Paraná

DACOM​ ​-​ ​Departamento​ ​de​ ​Computacão


LT33B​ ​::​ ​Estrutura​ ​de​ ​Dados

Exercícios​ ​08​ ​::​ ​Busca​ ​e​ ​Ordenação

Instruções​ ​Gerais
● Utilize​ ​o​ ​projeto​ ​trabalhado​ ​na​ ​última​ ​aula​ ​como​ ​base.
● Lembre-se​ ​que​ ​você​ ​pode​ ​usar​ ​as​ ​operações​ ​(funções)​ ​já​ ​existentes​ ​para​ ​facilitar​ ​seu​ ​trabalho.

1) Escreva uma função que realiza uma busca binária em um vector<int>. Ela deve retorna ​true ​caso
encontre​ ​o​ ​elemento​ ​ou​ ​false​​ ​para​ ​o​ ​contrário.

Função:​ ​bool​ ​binarySearch(vector<int>&​ ​vec,​ ​int​ ​target);

2) Escreva uma função que implementa o algoritmo ​selection sort ​para ordenar um array de inteiros. O
terceiro​ ​parâmetro​ ​“order”​ ​define​ ​a​ ​ordem:​ ​crescente​ ​(true)​ ​ou​ ​decrescente​ ​(false).

Função:​ ​void​ ​selectionSort(int​ ​v[​ ​],​ ​int​ ​n,​ ​bool​ ​order);

3) Escreva​ ​uma​ ​função​ ​que​ ​implementa​ ​o​ ​algoritmo​ ​bubble​ ​sort​ ​para​ ​ordenar​ ​um​ ​vector​ ​de​ ​strings.

Função:​ ​void​ ​bubbleSortT(vector<string>&​ ​vec);

4) Escreva uma função que implementa o algoritmo de ordenação ​bubble sort ​para ordenar um array de
tipo​ ​genérico​ ​(template).​ ​Referência​ ​:​ ​http://www.cplusplus.com/doc/oldtutorial/templates/

Função:​ ​template​ ​<typename​ ​T>​ ​//​ ​ou​ ​template​ ​<class​ ​T>


​ ​ ​void​ ​bubbleSortT(T​ ​v[​ ​],​ ​int​ ​n);

TESTE:​ ​a​ ​função​ ​deve​ ​funcionar​ ​para​ ​qualquer​ ​tipo​ ​que​ ​aceita​ ​comparação​ ​e​ ​atribuição.
int​ ​v[]​ ​=​ ​{5,4,3,2,1}; string​ ​v[]​ ​=​ ​{"John","Ada","Leon","Mako","Akira"};
bubbleSort<int>(v,​ ​5); bubbleSort<string>(v,​ ​5);

5) No algoritmo ​selecion sort, ​a array vai sendo ordenado da esquerda para direita, se empregado
ordem crescente. Dessa forma, os elementos à esquerda da posição “i” do laço principal já
encontram-se em sua posição final. Considerando essa informação, escreva uma função que modifica
o ​selection sort de forma que ele encontre a posição final de um dado elemento sem
necessariamente ordenar o vetor por completo, isto é, quando a posição final do elemento “e” já for
conhecida, a função deve terminar e retornar tal posição. Caso o elemento não esteja no array, deve
retornar​ ​-1.

Função:​ ​int​ ​selectionFind(int​ ​v[​ ​],​ ​int​ ​n,​ ​int​ ​e);


6) Escreva uma função que implementa o algoritmo de ordenação ​selection sort ​para ordenar uma Lista
Encadeada de inteiros. Para simplificar o algoritmo, faça as trocas dos valores “id” dos Nodes e não
modifique​ ​as​ ​posições​ ​dos​ ​mesmos.

Função:​ ​void​ ​listSelectionSort(List*​ ​list);

Você também pode gostar