Pesquisa Ternária em um vetor ordenado
Publicado por Giovanni Cândido da Silva 24/06/2009
[ Hits: 10.496 ]
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; }
Um classe que facilita a leitura de dados do teclahdo
Diferenca entre meses - um método de busca simples
Determinante de uma matriz de ordem 3.
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 Discord no Debian 12
Instalando e usando o Dconf Editor, o "regedit" para Linux
Dificuldade em ler binário (19)
Sistema da Coréia do Norte - Red Star OS (78)
Jogar jogos do Win 10 no Ubuntu (10)