Pesquisa Ternária em um vetor ordenado
Publicado por Giovanni Cândido da Silva 24/06/2009
[ Hits: 10.495 ]
Homepage: http://giovannicandido.wordpress.com
O algoritimo de pesquisa binária divide o vetor sucessivamente em duas partes, e utiliza a mesma
lógica porém dividindo o vetor em 3 partes.
/** * Divide um vetor em 3 partes sucessivamente em busca de um elemento * Retorna -1 caso o elemento não exista no vetor, ou o indice do elemento * @param x * @return */ public int pesquisaTer(int x){ int meio1, meio2; int esq = 0; int dir = arranjo.length-1; do{ //Calcula a primeira parte do vetor evitando estrapolação meio1=(dir - esq)/3 + esq; //Calcula a segunda parte do vetor evitando que meio2=((dir-esq)/3)*2 + esq; //Caso o arranjo esteja em um dos meios encerra o metodo e retorna a posição if(x==arranjo[meio1]) return meio1; if(x==arranjo[meio2]) return meio2; //Atualiza os indices esq e dir caso nao seja encontrado o elemento if(x<arranjo[meio1]){ dir=meio1-1; } if (x>arranjo[meio1] && x< arranjo[meio2]){ esq=meio1+1; dir=meio2 -1; } else if(x>arranjo[meio2]){ esq=meio2+1; } }while(esq<=dir); return -1; }
Cálculo de número de anos baseado em data
Pequeno algoritmo para determinar se um número é primo ou não entre 1 e 10000
Nenhum comentário foi encontrado.
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
Em que pasta/arquivo ficam as configurações das janelas em derivados d... (3)
validando quandidade de leitura no read[DUVIDA] (2)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (4)
Jogar jogos do Win 10 no Ubuntu (6)
Som parou de funcionar depois de atualizar o kernel do Slackware 15 (1)