Questões de Engenharia e Arquitetura · Cesgranrio

Engenharia e ArquiteturaOutros temasCesgranrio 2006

Petrobras

Questão de Engenharia e Arquitetura

14

public class ordArray { static long [] vetA = {10, 3, 5, 12, 12, 4, 5, 15, 50, 20, 2}; static int nElems; static long searchKey; private static int recFind (long searchKey, int ow, int up) { int curIn; curIn = (ow + up) / 2; if (vetA[curIn] == searchKey) return curIn; else if (ow > up) return nElems; else { if (vetA[curIn] < searchKey) return recFind (searchKey, curIn, up); else return recFind (searchKey, ow, curIn - 1); } } public static void main (String[] args) { ordArray arr = new ordArray(); nElems = vetA.length; searchKey = 3; if (recFind (searchKey, 0, nElems - 1) != vetA.length) System.out.println (“Chave encontrada: “ + searchKey); else System.out.println (“Chave não encontrada: “ + searchKey); } } O algoritmo recursivo (recFind) em Java, acima, que está sendo escrito por um analista, tem como objetivo localizar um elemento (searchKey) em um vetor (vetA). Para que o algoritmo funcione conforme especificado, qual das modificações propostas nas opções deve ser implementada, considerando que no exemplo acima o algoritmo tenta localizar o número 3 no vetor?

Sua resposta

Mais questões de Outros temas

Questão de prova oficial, com o gabarito definitivo publicado pela banca. Reproduzida para fins de estudo.