Questões de Concurso
Comentadas sobre algoritmos de busca em algoritmos e estrutura de dados
Foram encontradas 117 questões
função busca1(x) 1. i := 1 2. busca1 := 0 3. enquanto i ≤ n faça 4. se L[i].chave = x então 5. busca1 := i 6. i := n + 1 7. senão i := i + 1
função busca2(x) 1. i := 1 2. L[n + 1].chave := x 3. enquanto L[i].chave ≠ x faça 4. i := i + 1 5. se i ≠ n + 1 então busca2 := i 6. senão busca2 := 0
Com base nas informações dadas, é correto afirmar:
int busca (int [ ] vet, int elem)
Isto é, a função busca recebe um array de números inteiros (vet) e um número inteiro (elem) como parâmetros, e retorna um número inteiro. Caso exista em vet um inteiro igual a elem, a função retornará o índice desse inteiro no array; caso contrário, a função retornará -1.
O algoritmo de busca binária produz um índice (ind) a cada iteração sobre o array, tendo em vista comparar o elemento que se deseja procurar (elem) com o elemento vet [ ind ]. Isto é:
if ( vet [ ind ] == elem ) return ind;
No comando acima, diz-se que houve uma visita ao elemento vet [ ind ].
Admita que a função busca foi chamada por meio do comando a seguir:
int resp = busca (vet, 50);
Sabendo-se que os elementos visitados foram 54, 17, 33 e 50, nesta ordem, qual array foi passado como parâmetro para a função busca?
Considerando o uso de um algoritmo de busca sequencial otimizado, partindo da esquerda para a direita, e as sequências hipotéticas das senhas da fila de atendimento não preferencial e suas regras de ordenação, segundo as quais quem está à esquerda é atendido antes de quem está à direita, o menor número de comparações para o gerente conhecer o resultado de sua busca ocorre em
I - Um array de 1.000 números inteiros ordenados de forma decrescente; II - Uma lista encadeada desordenada e alocada dinamicamente, cujos 1.000 nós contêm strings (uma string por nó); III - Uma lista encadeada, alocada dinamicamente, cujos 1.000 nós contêm números decimais (um número double por nó) ordenados de forma ascendente.
Levando-se em consideração a exequibilidade e a eficiência, quais métodos de busca devem ser empregados, respectivamente, em cada um dos três casos acima?
Formalmente, um algoritmo de busca é aquele que aceita um argumento e tenta encontrar o registro cuja chave seja igual ao argumento. Assim, analisando o seguinte passo a passo de um algoritmo de busca, é correto afirmar que se trata de um algoritmo
1. Defina que min= 1 e max = n.
2. Encontre a média de max e min, arredondando para baixo para que seja um inteiro.
3. Se você tiver adivinhado o número certo. Pare – Fim algoritmo!
4. Se o palpite foi muito baixo, defina o min como 1 a mais do que o palpite.
5. Se o palpite foi muito alto, defina o max como 1 a menos do que o palpite.
6. Volte ao passo dois.
Tais sentenças se referem, respectivamente, aos métodos de pesquisa: