Buscar

433922271-Estrutura-de-Dados-Aulas-1-4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ESTRUTURA DE DADOS
	(1) Preciso fazer uma relação de tudo o que levar em minha viagem de mochila pela Europa.  A estrutura de dados mais adequada para armazenar tudo que preciso levar é ...
	
	
	
	Grafo
	
	
	Lista
	
	
	árvore
	
	
	Fila
	
	
	Pilha
		2.
		Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para sua execução assinale a alternativa que representa a resposta final.
cin >> a;
cin >> b;
cin >> c;
cin >> d;
cout << a;
cout << b;
cout << c;
cout << d;
cout << d;
cout << c;
cout << b;
cout << a;
	
	
	
	Após a impressão dos valores pela ordem teremos uma fila e uma pilha.
	
	
	Após a impressão dos valores pela ordem teremos uma pilha e uma fila.
	
	
	Após a impressão dos valores pela ordem teremos duas pilhas.
	
	
	Após a impressão dos valores pela ordem teremos uma fila e um grafo.
	
	
	Após a impressão dos valores pela ordem teremos duas filas.
		3.
		          Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso que farão, de cidade a cidade.  Qual a estrutura de dados mais adequada para modelar este problema ?
	
	
	
	 Lista
	
	
	Fila
	
	
	Grafo
	
	
	             Pilha
	
	
	              Árvore
		4.
		           Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados mais adequada para modelar este problema, visto que não há qualquer preocupação com ordem de chegada ou saída de aluno da turma.
	
	
	
	Lista
	
	
	         Fila
	
	
	          Pilha
	
	
	Grafo
	
	
	Árvore
		5.
		As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem algoritmos de manipulação de dados associados a estas estruturas.
Verifique as seguintes sentenças:
I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.
II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados.
III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.
IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes foram armazenados.
Marque a alternativa CORRETA:
	
	
	
	As alternativas II e IV estão corretas.
	
	
	Todas as alternativas estão corretas.
	
	
	As alternativas III e IV estão corretas.
	
	
	As alternativas I e III estão corretas.
	
	
	As alternativas I e II estão corretas
		6.
		Das estruturas de dados a seguir aquela que NÃO é uma estrutura linear é :
	
	
	
	Grafo.
	
	
	Vetor.
	
	
	Lista.
	
	
	Pilha.
	
	
	Fila.
	
Explicação:
Lineares : lista, pilha, fila, deque. Com ou sem vetor, que é linear.
Não lineares  : árvore e grafo.
		7.
		As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
	
	
	
	Lista Encadeada
	
	
	Lista Sequencial
	
	
	Pilha Encadeada
	
	
	Fila Sequencial
	
	
	Pilha Sequencial
		8.
		Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma estrutura de dados que é .....  Assinale a opção certa.
	
	
	
	árvore
	
	
	pilha
	
	
	lista
	
	
	grafo
	
	
	fila
	
	1a Questão (Ref.:201808354233)
	Acerto: 1,0  / 1,0
	Estão entre algumas das possíveis formas de estruturas de dados:
		
	
	Árvores binárias, pilhas, algoritmos
	
	Grafos, funções, fila
	 
	Árvores binárias, pilhas, vetores
	
	cout, Funções, vetores
	
	Listas, vetores, cin
	Respondido em 28/10/2019 11:45:48
	
	
	
	2a Questão (Ref.:201807820303)
	Acerto: 1,0  / 1,0
	Qual estrutura de dados não linear que é utilizada na implementação de Redes de Computadores, na Computação Gráfica, em modelagem de circuitos digitais e etc. E que se caracteriza por apresentar um conjunto de nós e conexões entre eles.
		
	
	Pilhas Encadeadas
	
	Vetores
	
	Filas Encadeadas
	
	Listas Encadeadas.
	 
	Grafos
	Respondido em 28/10/2019 11:51:56
	
	
	
	3a Questão (Ref.:201807462755)
	Acerto: 1,0  / 1,0
	Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n; n = 5; dobro(n); cout << n; return 0; }
		
	
	0
	
	20
	
	Haverá um erro de compilação
	
	10
	 
	5
	Respondido em 28/10/2019 11:54:21
	
	
	
	4a Questão (Ref.:201808106141)
	Acerto: 1,0  / 1,0
	Sobre funções, é correto afirmar:
		
	 
	São blocos de instruções que são executados quando são chamadas em alguma parte do programa.
	
	Obrigatoriamente devem possuir parâmetros.
	
	Não podem ser chamadas dentro de outras funções.
	
	Obrigatoriamente devem retornam algum valor.
	
	Não devem conter variáveis locais em seu código.
	Respondido em 28/10/2019 12:20:39
	
	
	
	5a Questão (Ref.:201807845553)
	Acerto: 1,0  / 1,0
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	vet[10].aluno.nota=5.7 ;
	
	aluno.vet[10]=5.7;
	
	aluno.vet[10].nota=5.7;
	 
	vet[10].nota=5.7;
	
	vet[10]=aluno.5.7;
	Respondido em 28/10/2019 11:56:07
	
	
	
	6a Questão (Ref.:201807871342)
	Acerto: 1,0  / 1,0
	Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
 
 struct  aluno {
              string nome;
              float   nota;
};
 
Suponha ainda que exista um vetor desta estrutura, definido como:
 aluno vet [ 100];
 
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
		
	
	vet[10]=aluno.5.7;
	
	aluno.vet[10]=5.7;
	
	aluno.vet[10].nota=5.7;
	
	vet[10].aluno.nota=5.7 ;
	 
	vet[10].nota=5.7;
	Respondido em 28/10/2019 12:03:02
	
	
	
	7a Questão (Ref.:201807231446)
	Acerto: 1,0  / 1,0
	Em uma pesquisa sequencial a lista deve estar?
		
	
	ordenada somente do início até a metade da lista.
	
	desordenada somente da metade da lista até o final.
	
	sempre desordenada.
	 
	ordenada ou desordenada.
	
	ordenada somente o primeiro da lista.
	Respondido em 28/10/2019 12:04:12
	
	
	Gabarito
Coment.
	
	
	
	
	8a Questão (Ref.:201807232003)
	Acerto: 1,0  / 1,0
	O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de:
		
	
	Inserção
	
	Hash
	 
	Seleção
	
	Binária
	
	Bolha
	Respondido em 28/10/2019 12:05:41
	
	
	Gabarito
Coment.
	
	
	
	
	9a Questão (Ref.:201807879537)
	Acerto: 1,0  / 1,0
	Considere uma lista com n  livros, em que cada livro é modelado pela struct :
 
struct Livro {
                            string titulo,  editora, autor;float preco;
};
 
A função X abaixo
 
void X (Livro v[ ], int &n, Livro L)
{
     v[n] = L;
     n++;
    cout << "Operação realizada com sucesso.";
}
 
implementa a operação de :
		
	
	Substituição
	
	Busca
	 
	Inserção
	
	Ordenação por inserção
	
	Inicialização
	Respondido em 28/10/2019 12:11:05
	
	
	Gabarito
Coment.
	
	
	
	
	10a Questão (Ref.:201807231994)
	Acerto: 1,0  / 1,0
	As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e organizado. A estrutura de dados considerada mais simples e tem como característica apresentar apenas uma dimensão é:
		
	
	Registro
	
	Função
	 
	Vetor
	
	Matriz
	
	Variável
	Respondido em 28/10/2019 12:13:08
	
	
	Gabarito
Coment.
	
	
	
	 1a Questão
	
	
	
	
	Em relação a estruturas de dados, avalie a correspondência existente entre as estruturas de dados Lineares e Não Lineares com suas respectivas coleções de dados.
 
 
A correta associação entre os elementos das duas tabelas é:
		
	
	a1, b2, c1, d1.
	 
	a1, b1, c2, d1
	
	a2, b2, c1, d2.
	
	a1, b1, c2, d2.
	
	a2, b1, c2, d1.
	Respondido em 31/10/2019 19:11:24
	
Explicação:
Por definição : pilha, fila, lista, vetor são estruturas lineares.  Já árvore e grafos são estruturas de dados não lineares.
	
	
	Gabarito
Coment.
	
	 
	
	 2a Questão
	
	
	
	
	A forma correta para imprimir o valor do último elemento de um vetor v com n posições é:
		
	
	cout << v[ultimo];
	
	cin >> v[-1];
	 
	cout << v[n-1];
	
	cout << v[n];
	
	cout << v[n+1];
	Respondido em 31/10/2019 19:13:26
	
	
	 
	
	 3a Questão
	
	
	
	
	Estão entre algumas das possíveis formas de se estruturar dados:
		
	
	Grafos, lista ordenada, algoritmos.
	
	Lista encadeada, vetores, algoritmos.
	 
	Grafos, lista ordenada, vetores.
	
	Grafos, algoritmos, fila.
	
	Algoritmos, lista ordenada, vetores.
	Respondido em 31/10/2019 19:12:48
	
	
	Gabarito
Coment.
	
	 
	
	 4a Questão
	
	
	
	
	Na maioria dos sistemas operacionais, os arquivos são organizados hierarquicamente em um esquema de diretórios (pastas) e sub-diretórios. Qual a estrutura mais adequada para representar este problema ?
		
	
	pilha
	
	lista
	 
	árvore
	
	grafo
	
	fila
	Respondido em 31/10/2019 19:13:45
	
	
	Gabarito
Coment.
	
	 
	
	 5a Questão
	
	
	
	
	Preciso fazer uma relação de tudo o que levar em minha viagem de mochila pela Europa.  A estrutura de dados mais adequada para armazenar tudo que preciso levar é ...
		
	 
	lista
	
	grafo
	
	fila
	
	árvore
	
	pilha
	Respondido em 31/10/2019 19:13:55
	
Explicação:
Conforme gabarito e aula 1.
	
	
	 
	
	 6a Questão
	
	
	
	
	Qual estrutura de dados é mais adequada para armazenar a estrutura do diretório do sistema de arquivos de um sistema operacional?
		
	
	Grafo
	
	Lista
	
	Fila
	 
	Árvore
	 
	Pilha
	Respondido em 31/10/2019 19:14:21
	
	
	 
	
	 7a Questão
	
	
	
	
	Diferentes tipos de estrutura de dados são adequadas a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa:
		
	
	É um modo de utilização de dados nos programas de computador.
	
	São os nomes dados as variáveis na montagem de uma rotina.
	
	É um modo de deleção de dados em um computador.
	 
	É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente.
	
	É um modo de distribuição e organização de dados em uma rede de computador de modo que possam ser usados de modo eficiente.
	Respondido em 31/10/2019 19:15:50
	
	
	
	 8a Questão
	
	
	
	
	Assinale a alternativa correta sobre tipos abstratos de dados:
		
	
	Um tipo abstrato de dados descreve, além do que se pode fazer com os dados, como as operações serão efetivamente implementadas.
	
	É fundamental que os tipos abstratos de dados proponham um conjunto eficiente de algoritmos para realização de suas operações.
	 
	Um tipo abstrato de dados é composto por um modelo de dados e um conjunto de operadores definidos sobre esses dados.
	
	Um tipo abstrato de dados deve sempre ser representado por meio dos recursos específicos de uma linguagem de programação.
	 
	Um tipo abstrato de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.
FUNÇÕES
		1.
		No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente.
#include
using namespace std;
int x, y;
float media( float a, float b )
{ float tmp;
tmp = (a + b ) / 2.0;
return ( tmp );
}
int main()
{
float r;
cout<<"Informe 2 valores: ";
cin>>x>> y;
r = media( x, y );
cout<<"\nMedia = "<< r<<"\n";
system ("pause");
}
	
	
	
	( ) área de pilha / área de registro
	
	
	( ) área de dados globais / área de registro
	
	
	( ) área de dados globais / área de pilha
	
	
	( ) área de registro / área de dados globais
	
	
	( ) área de registro / área de pilha
		2.
		Considere as seguintes afirmativas :
I) Os vetores em C++, quando passados como parâmetros de funções,  são obrigatoriamente passados "por valor" e não "por referência".
II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas.
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo usando parâmetros passados "por valor".
As afirmativas corretas são:
	
	
	
	Apenas II
	
	
	Apenas III
	
	
	Apenas I e II
	
	
	Nenhuma está correta
	
	
	Apenas I
		3.
		1)      O que será impresso pela função Eureka ?  Assinale a opção correta.
 
void Eureka()
  {
              for (int i = 1; i <= 10; i++)
                              if (i % 2 == 0)
                                  cout << i << " ";
                              else
                                 if (i % 7 == 0)
                                     return;
  }
 
	
	
	
	Nada é impresso, pois a função não compila. Para a função compilar, deveria ter int no lugar de void, já  que há return na função.
	
	
	Nada é impresso, pois a função não compila. A função não deveria usar return, pois não está de acordo  com o uso de void.
	
	
	2 4 6 8 10
	
	
	2 4 6
	
	
	2 4 6 8
		4.
		As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória. Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo:
	
	
	
	Inteiro
	
	
	Local
	
	
	Constante
	
	
	Global
	
	
	Real
		5.
		Ao definirmos uma função, podemos afirmar:
I Toda função tem parâmetros
II Quando nada retorna, o tipo é void
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas
IV  Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada
Após uma análise das afirmativas acima, escolha a opção correta.
	
	
	
	Somente II III e IV estão corretas
	
	
	Somente II está correta
	
	
	Somente II e IV estão corretas
	
	
	Somente I e II estão corretas
	
	
	Somente II e III estão corretas
		6.
		Considere o trecho de um programa escrito em C++ : 
int func1 (long num) {
    int n, na=1;
    while (num / 10 != 0){
          na += 1;
          num /= 10;
    }
    return na;
}
main() {
     cout << func1 (132041);
}
Marque a opção correta que mostra o que é impresso na tela.
	
	
	
	2
	
	
	6
	
	
	3
	
	
	4
	
	
	1
		7.
		Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornaro fatorial do número pedido. Marque a opção que representa um protótipo de função válido.
	
	
	
	nome tipo(parametros);
	
	
	void float(int a, int b);
	
	
	tipo parametros(parametros);
	
	
	retorno nomeFuncao(parametros);
	
	
	tipo parametros(int a, int b);
		8.
		Caso uma estrutura homogênea (vetor) seja passada como parâmetro para uma função, então:
	
	
	
	Essa passagem pode ser "por valor" ou "por referência"
	
	
	Haverá um erro de compilação, pois vetores não podem ser parâmetros de funções
	
	
	Essa passagem é "por referência"
	
	
	Todos os valores contidos no vetor são copiados para a função
	
	
	Essa passagem é "por valor"
		5.
		Em programação podemos utilizar um recurso que modulariza o programa chamado função. As funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando a função por meio de:
	
	
	
	Envio de inteiro.
	
	
	Ponteiros.
	
	
	Passagem por valor.
	
	
	Envio de valor.
	
	
	Registro.
		4.
		Sobre funções, é correto afirmar:
	
	
	
	Obrigatoriamente devem possuir parâmetros.
	
	
	Não podem ser chamadas dentro de outras funções.
	
	
	São blocos de instruções que são executados quando são chamadas em alguma parte do programa.
	
	
	Não devem conter variáveis locais em seu código.
	
	
	Obrigatoriamente devem retornam algum valor.
		3.
		Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o seguinte programa principal for executado? int main() { int n; n = 5; dobro(n); cout << n; return 0; }
	
	
	
	10
	
	
	20
	
	
	5
	
	
	0
	
	
	Haverá um erro de compilação
		2.
		Na passagem por ____________________ , o endereço da variável da função chamadora é passado para a função chamada e, dessa forma, o valor poderá ser alterado, ou não.
	
	
	
	referência
	
	
	número
	
	
	valor
	
	
	void
	
	
	caracter
		1.
		Considere a função abaixo: 
int func (int a, int &b) {
a = b - a;
b = a * 2;
a = b * 2;
return a;
}
Considere também o seguinte trecho de código no main :
int x=2, y=3, z;
z = func (x,y);
cout << x << "; " << y<< "; " << z;
Após a execução do cout, seria impresso:
	
	
	
	4; 2; 4
	
	
	1; 3; 1
	
	
	2; 2; 1
	
	
	1; 2; 4
	
	
	2; 2; 4
ESTRUTURAS HETEROGENEAS
		1.
		Qual das seguintes estruturas de dados é classificada como heterogênea?
	
	
	
	Pilha
	
	
	Vetor
	
	
	Registro
	
	
	Loop
	
	
	Fila
		2.
		Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
	
	
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
		3.
		Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
	
	
	
	∙ (ponto).
	
	
	-> (seta).
	
	
	* (asterisco).
	
	
	, (vírgula).
	
	
	& (e comercial ou eitza).
		4.
		o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código que exibe a melhor forma de solucionar este problema?
	
	
	
	for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; }
	
	
	for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	
	for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
	
	
	for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; }
	
	
	int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; }
		5.
		Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome. Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como: struct aluno { string nome; float media; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma correta a media 6.0 para o quarto elemento deste vetor.
	
	
	
	aluno[3].media=6.0;
	
	
	vet[3].aluno=6.0;
	
	
	aluno[10]=6.0;
	
	
	vet[3].media=6.0;
	
	
	aluno[3].10=6.0;
		6.
		Marque a opção correta, considerando
struct Livro {
int codigo;
float preco;
} liv;
	
	
	
	liv.preco = 30.70;
	
	
	Livro->liv.codigo = 12345;
	
	
	liv->preco = 30.70;
	
	
	Livro.codigo = 12345;
	
	
	Livro.liv.codigo = 12345;
		7.
		Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente, agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de uma estrutura como:
struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [100];
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste vetor.
	
	
	
	aluno.vet[10].nota=5.7;
	
	
	aluno.vet[10]=5.7;
	
	
	vet[10].aluno.nota=5.7 ;
	
	
	vet[10]=aluno.5.7;
	
	
	vet[10].nota=5.7;
		8.
		Com relação à struct,  é correto afirmar que :
	
	
	
	A struct é sempre definida dentro da main.
	
	
	Cada elemento da struct  é chamado componente.
	
	
	Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo tipo.
	
	
	Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de um tipo de dados distinto de outro campo.
	
	
	Cada elemento da struct é denominado membro ou campo, sendo que a struct pode armazenar elementos de tipos diferentes ou não.
		3.
		Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção.
	
	
	
	int ordena(float v[], float valor, int n) {
 int ini = 0, fim = n-1, meio;
   while (ini >= fim){
     meio = ini/2;
     if (v[meio] == valor)
       return meio; 
     if (valor < v[meio])
       fim = meio -1;
     else
       ini = meio+1;
}
	
	
	void ordena (int v[], int n){
       int i, j, aux;
       for (j = 1; j < n; j++)
           for (i=j; i > 0 && v[i-1]> v[i]; i--){
              aux = v[i-1];
              v[i-1] = v[i];
              v[i] = aux; 
            }
}
	
	
	int ordena(float v[], float valor, int n){
   for (int i = 0; i < n; i++)
     if (v[i] == valor)
       return i;
   return -1;
}
	
	
	void ordena(int v[], int n){
int i, j, menor, aux;
for (j = 0; j < n-1; j++) {
    for (i = j+1; i < n; i++) {
         if (v[i] < v[j]) {
             aux = v[j];
             v[j] = v[i];
             v[i] = aux;
        }
    }
}
}
	
	
	int ordena(float v[], float valor, int n) { 
     int ini = 0, fim = n -1, meio;
    while (ini <= fim){
        meio = (ini + fim)/2;
        if (v[meio] == valor)
              return meio;
        if (valor < v[meio])
             fim = meio -1;
        else
             ini = meio+1;
    }
    return-1;
}
		1.
		Dadas as afirmativas abaixo, identifique as corretas e marque a alternativa verdadeira.
I- Vetores e matrizes servem apenas para construir agregados de dados heterogêneos.
II- Registros em C++ são tipos de dados compostos formados por mais de um tipo  de dados.
III- Na Linguagem C++, "struct" é uma palavra reservada que serve para definir registros.
IV- Registros são tipos de dados heterogêneos.
	
	
	
	estão corretas apenas as afirmativas I, II e III.
	
	
	estão corretas apenas as afirmativas I, III e IV.
	
	
	estão corretas apenas as afirmativas I, II e IV.
	
	
	todas as afirmativas estão corretas.
	
	
	estão corretas apenas as afirmativas II, III e IV.
AULA 4
		1.
		
	
	
	
	if(vet[j-1] > vet[j] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
	
	
	if(vet[j-1] < vet[j] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
	
	
	if(vet[j] < vet[j-1] )
    { 
         aux=vet[j];
         vet[j-1]= vet[j];
         vet[j-1]=aux;      
     }
	
	
	if(vet[j] < vet[j-1] )
    { 
         aux=vet[j];
         vet[j]< vet[j-1];
         vet[j-1]=aux;      
     }
	
	
	if(vet[j] == vet[j-1] )
    { 
         aux=vet[j];
         vet[j]= vet[j-1];
         vet[j-1]=aux;      
     }
		2.
		Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser aplicada em vetores independente destes estarem ordenados, entretanto a busca binária só se aplica em vetores ordenados.
Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos realizam testes nos elementos do vetor até achar o que procuram ou definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa que expressa o número de testes realizados pela busca sequencial e o número de testes realizados pela busca binária, respectivamente, até encontrarem o 70.
	
	
	
	5 e 5
	
	
	7 e 1
	
	
	6 e 4
	
	
	6 e 1
	
	
	6 e 2
		3.
		Analisando o trecho de código a seguir:
inicio=0;
fim= tamanho - 1;
meio=(inicio+fim)/2;
while(procura != nomeVetor[meio] && inicio != fim)
{
  if(procura > nomeVetor[meio])            
   inicio=meio+1;
  else
   fim=meio;
  meio=(inicio+fim)/2;   
}
if(nomeVetor[meio]==procura)
 cout<<"\n....: "< < outroVetor[meio]<<endl;
else
 cout<<"\nDado nao encontrado\n";</endl;
Pode-se afirmar que:
	
	
	
	trata-se da implementação do algortimo de busca sequencial
	
	
	trata-se da implementação do algortimo de ordenação por seleção.
	
	
	trata-se da implementação do algortimo de ordenação por inserção.
	
	
	trata-se da implementação do algortimo de busca binária.
	
	
	trata-se da implementação do algortimo de ordenação bolha.
		4.
		Marque a afirmativa correta para a "inserção incremental".
	
	
	
	É um tipo de ordenação por intercalação
	
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	
	É um tipo de sequenciação por intercalação.
	
	
	Os pivôs são escolhidos aleatoriamente.
	
	
	A técnica é boa quando os dados ficam uniformemente distribuídos entre os seus compartimentos.
		5.
		Suponha uma listagem, contendo número de inscrição e pontuação (ordenada pelo número de inscrição) dos candidatos para o cargo de Analista de Sistemas de uma grande empresa pública. São 1024 candidatos inscritos e o sistema implementado para consulta do resultado, permite busca binária ou busca sequencial pelo número de inscrição. O número máximo de comparações executadas se fosse utilizada a busca binária e se fosse utilizada busca sequencial, respectivamente, seria de:
	
	
	
	9 e 9
	
	
	1024 e 512
	
	
	10 e 1024
	
	
	10 e 10
	
	
	9 e 10
		6.
		O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método denominado busca:
	
	
	
	binária.
	
	
	linear.
	
	
	por comparação.
	
	
	por contagem.
	
	
	randômica.
		7.
		Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento que se deseja com o elemento do meio do vetor, é chamado de:
	
	
	
	Tabela Hash
	
	
	Pesquisa ordenada
	
	
	Pesquisa sequêncial
	
	
	Pesquisa binária
	
	
	Pesquisa de seleção
		8.
		
Este vetor foi ordenado pelo método:
	
	
	
	Ordenação por inserção (insertion sort). 
	
	
	Ordenação por seleção (selection sort).  
	
	
	Quicksort.  
	
	
	Método da bolha (bubble sort).  
	
	
	Mergesort.  
		7.
		Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela retornaria?
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = 0
	
	
	
	-2
	
	
	-1
	
	
	1
	
	
	0
	
	
	2
		6.
		Qual característica NÃO podemos atribuir a PESQUISA BINÁRIA.
	
	
	
	Quando o valor pesquisado é maior do que a chave do MEIO da lista, devemos dispensar  a metade que vem antes do meio da lista.
	
	
	São realizadas sucessivas divisões da lista ao meio.
	
	
	É eficiente quando se trata de listas ordenadas
	
	
	A lista pode estar desordenada.
	
	
	A lista precisa estar ordenada.
		5.
		Sabendo-se que o método de seleção também é um método de ordenação que baseia seu algoritmo em trocas entre os elementos de um vetor, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 13, 23, 3, 8, 1. Pode-se dizer que quando o menor elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
	
	
	
	1,8,3,23,13
	
	
	1,3,23,8,13
	
	
	1,13,23,8,3
	
	
	1,23,3,8,13
	
	
	1,23,13,8,3
		4.
		Em uma pesquisa sequencial a lista deve estar?
	
	
	
	sempre desordenada.
	
	
	ordenada somente o primeiro da lista.
	
	
	ordenada ou desordenada.
	
	
	ordenada somente do início até a metade da lista.
	
	
	desordenada somente da metade da lista até o final.
		3.
		Caso seja empregada uma busca binária em uma lista sequencial ordenada com 2048 valores, qual seria o número máximo de comparações para encontrar um valor que esteja na lista?
	
	
	
	12
	
	
	11
	
	
	10
	
	
	9
	
	
	8
		2.
		Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função abaixo e marque corretamente a alternativa que descreve as funcionalidades desta.
int funcao(float v[], float vl,int n)
{
   for (int i = 0; i < n; i++)
     if (v[i] == vl)
       return i;
   return -1;
}
	
	
	
	Retorna -1 se o valor de n foi encontrado.
	
	
	Retorna -1 se o valor de vl estiver dentro de v.
	
	
	Retorna a posição de v se o valor vl foi encontrado.
	
	
	Resulta em erro, se o valor de vl não estiver dentro de v.
	
	
	Retorna o valor de vl se o valor n foi encontrado.
		1.
		O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação?
void ordenar(float v[], int n) // n é o no. de elementos em v
{
 int i , // índice
 aux, // auxiliar para troca
trocou = true,
fim = n - 1;
while (trocou)
{
    trocou = false; // sinaliza que é falso que trocou
     for (i = 0; i < fim; i++)
     {
       if (v[i] > v[i+1])
       {
         aux = v[i];
         v[i] = v[i+1];
         v[i+1] = aux;
         // sinaliza que é verdadeiro que trocou
         trocou = true;
        } // fim if
    } // fim for
 fim--; // decrementa o fim
} // fim while
} // fim da função
	
	
	
	Mergesort
	
	
	Bublesort
	
	
	Heapsort
	
	
	Quicksort
	
	
	Shellsort
		8.
		O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de:
	
	
	
	Seleção
	
	
	Binária
	
	
	Bolha
	
	
	Inserção
	
	
	Hash
		7.
		Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu vetor em duas metades.
	
	
	
	Se o item for maior que o item que está na metade do vetor procure na primeira metade, ou seja, a da direita.
	
	
	Se o item for igual ao item que está na metade do vetor, o item não foi encontrado.
	
	
	Se o item for menor que o item que está na metade do vetor, procure na segunda metade, ou seja, a da direita.
	
	
	Se o item for menor que o item que está na metade do vetor, o item foi encontrado.
	
	
	Se o item for igual ao item que está na metade do vetor, o item foi encontrado.
		6.
		Seja a seguinte função de ordenação:
void ordena( int n, int v[])
{
   int i, j, x;
   for (j = 1; j < n; ++j) {
      x = v[j];
      for (i = j-1; i >= 0 && v[i] > x; --i)
         v[i+1] = v[i];
      v[i+1] = x;
   }
}
Pode-se dizer que é uma função de ordenação:
	
	
	
	Que utiliza o método inserção e realiza uma ordenação crescente nos elementos do vetor v.
	
	
	Que utiliza o método seleção e realiza uma ordenação decrescente nos elementos do vetor v.
	
	
	Que utiliza o método inserção e realiza uma ordenação decrescente nos elementos do vetor v.
	
	
	Que utiliza o método bolha e realiza uma ordenação crescente nos elementos do vetor v.
	
	
	Que utiliza o método seleção e realiza uma ordenação crescente nos elementos do vetor v.
		5.
		Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de nome v com n elementos.
...
{
int i, j, aux;
for (j = 1; j < n; j++)
for (i=j; i > 0 && v[i-1]> v[i]; i--) {
aux = v[i-1];
v[i-1] = v[i];
v[i] = aux;
}
}
Assinale o método ao qual o trecho de algoritmo pertence.
	
	
	
	Bolha
	
	
	Inserção
	
	
	Seleção
	
	
	Quicksort
	
	
	Heapsort
		4.
		Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?
	
	
	
	Insert Sort, Bubble Sort e Quick Sort
	
	
	Insert Sort, Bubble Sort e Shell Sort
	
	
	Selection Sort, Insert Sort e Bubble Sort
	
	
	Selection Sort, Shell Sort e Bubble Sort
	
	
	Shell Sort, Quick Sort e Heap Sort
		3.
		Considere a seguinte função busca escrita em linguagem C++ :
bool busca(int vetor[ ], int n, int tam)
{
    int ini=0, mid;
    while (ini <= tam)
    {
         cout << " x ";
         mid = (ini + tam)/2;
         if (vetor[mid] == n)
             return true;
         else if (n > vetor[mid])
             ini = mid+1;
         else
             tam = mid-1;
    }
    return false;
}
Qual a quantidade total de impressões da letra x nas buscas pelos números n = 4, n = 2 e n = 0 no vetor [1,2,3,4,5,6,7,8], sendo tam = 7 ?
int vetor[] = {1,2,3,4,5,6,7,8};
busca(vetor, 4, 7);
busca(vetor, 2, 7);
busca(vetor, 0, 7);
	
	
	
	6
	
	
	8
	
	
	9
	
	
	4
	
	
	5
		2.
		Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais".
	
	
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
	
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
		1.
		Qual a importância de se entender a "ordenação" de dados ?
	
	
	
	A ordenação é a base na qual, muitos programas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
	
	
	A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
	
	
	A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
	
	
	A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
	
	
	A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação, tem-se conhecimento para manter outros problemas.
		8.
		Estude atentamente o código a segir:
int deciframe(int v[ ], int tam, int e){
int i = 0, f = tam -1, m;
while ( i <= f ){
m = ( i + f ) / 2;
if ( v[m] == e ) { return m; }
if ( e < v[m] ) { f = m - 1; }
else { i = m + 1; }
}
return -1;
}
Sabendo que a chamada da mesma foi feita com os parâmetros:
v[10] = {0, 2, 4, 6, 8, 10, 20, 100}
tam = 8
e = -6
É sabido que a mesma retornaria o valor -1, porque:
	
	
	
	Seria o retorno do while
	
	
	É a posição do elemento e no vetor v
	
	
	É o módulo do valor de e
	
	
	Seria o retorno do segundo if
	
	
	Porque ele não achou o elemento na coleção
		7.
		Qual papel do for mais interno na função ordena abaixo ?
void ordena( int n, int v[])
{
   int i, j, x;
   for (j = 1; j < n; ++j) {
      x = v[j];
      for (i = j-1; i >= 0 && v[i] > x; --i)
         v[i+1] = v[i];
      v[i+1] = x;
   }
}
	
	
	
	Encontrar o maior valor de x que deve ser inserido em v[0..j-1].
	
	
	Encontrar o menor valor v[j] que deve ser inserido em v[0..j-1].
	
	
	Encontrar o elmento a ser eliminado do vetor
	
	
	Encontrar o valor de v[j] deve em v[0..j-1].
	
	
	Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1].
		6.
		"Algoritmo de ordenação por trocas  que varre um vetor um certo número de vezes, comparando os elementos vizinhos dois a dois. A cada varredura, se o par de elementos está em ordem crescente, nada é feito, caso contrário os elementos do par são permutados". Esta definição está descrevendo o algoritmo de ordenação conhecido por :
	
	
	
	SelectionSort
	
	
	QuickSort
	
	
	MergeSort
	
	
	BubbleSort
	
	
	InsertionSort
		5.
		Os métodos de ordenação são muito utilizados para facilitar a recuperação posterior de itens ordenados. Existem vários métodos de ordenação, por esse motivo, assinale corretamente a alternativa que mostra o nome do método que utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método mais simples.
	
	
	
	Hash
	
	
	Binária
	
	
	Inserção
	
	
	Seleção
	
	
	Bolha
		4.
		Considere a função misterio eo trecho abaixo.
void misterio(int v[ ], int n) {     //n é o número de elementos de v
   int i, j, m, aux;
   for (j = 0; j < n-1; j++) {
        m = j;
        for (i = j+1; i < n; i++) {
             if (v[i] < v[m])
                    m = i;
        }
        aux  = v[j];
        v[j] = v[m];
        v[m] = aux;
	
   }
}
Trecho na main :        
int v[4] = {40,30,10,20};
misterio(v, 4);
Marque a  opção correta.  Como ficará o vetor após a execução da função misterio ?
 
	
	
	
	10  20  40  30  
	
	
	10  20  30  40  
	
	
	5  10  20  30 
	
	
	10  30  40  20 
	
	
	10  30  20 40
		3.
		Marque a afirmativa correta para a "Busca ou pesquisa binária".
	
	
	
	É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
	
	
	Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	Consiste em fazer uma busca em um vetor desordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
	
	
	Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
	
	
	Consiste em adicionar um valor no vetor, alterando a ordem existente e ajustando o total de elementos.
		2.
		O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os seguintes passos:
· Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do vetor;
· Selecione o segundo maior e troque-o com o candidato que está na segunda posição;
· Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste apenas um candidato.
O algoritmo utilizado pelo programador trata-se do método de ordenação denominado:
	
	
	
	Inserção
	
	
	Bolha
	
	
	Heapsort
	
	
	Seleção
	
	
	Quicksort
		1.
		É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.
A descrição apresentada trata-se do método denominado busca ...... 
	
	
	
	binária.
	
	
	linear.
	
	
	por contagem.
	
	
	por comparação.
	
	
	randômica.

Continue navegando