public class Busca{
//Buscas Lineares
//Busca Linear de Inteiros
public int linear(int iVet[], int iNum){
int i;
for(i=0; i < iVet.length;i++){
if(iVet[i] == iNum){
return i;
}
}
return -1;
}
//Busca Linear de Double
public int linear(double dVet[], double dNum){
int i;
for(i=0; i < dVet.length;i++){
if(dVet[i] == dNum){
return i;
}
}
return -1;
}
//Busca Linear de Char
public int linear(char cVet[], char cCarac){
int i;
for(i=0; i < cVet.length; i++){
if(cVet[i] == cCarac){
return i;
}
}
return -1;
}
//Busca Linear de String
public int linear(String sVet[], String sPalavra){
int i;
for(i=0; i < sVet.length; i++){
if (sVet[i].equalsIgnoreCase(sPalavra)){
return i;
}
}
return -1;
}
//Buscas Lineares Recursivas
//Busca Linear Recursiva de Inteiros
public int linearRec(int iVet[], int iNum){
return linearRec(iVet, iNum, 0);
}
public int linearRec(int iVet[], int iNum, int i){
if (i >= iVet.length){
return -1;
}
if (iVet[i] == iNum){
return i;
}
return linearRec(iVet, iNum, i+1);
}
//Busca Linear Recursiva de Double
public int linearRec(double dVet[], double dNum){
return linearRec(dVet, dNum, 0);
}
public int linearRec(double dVet[], double dNum, int i){
if (i >= dVet.length){
return -1;
}
if (dVet[i] == dNum){
return i;
}
return linearRec(dVet, dNum, i+1);
}
//Busca Linear Recursiva de Char
public int linearRec(char cVet[], char cCarac){
return linearRec(cVet, cCarac, 0);
}
public int linearRec(char cVet[], char cCarac, int i){
if (i >= cVet.length){
return -1;
}
if (cVet[i] == cCarac){
return i;
}
return linearRec(cVet, cCarac, i+1);
}
//Busca Linear Recursiva de String
public int linearRec(String sVet[], String sPalavra){
return linearRec(sVet, sPalavra, 0);
}
public int linearRec(String sVet[], String sPalavra, int i){
if (i >= sVet.length){
return -1;
}
if (sVet[i].equalsIgnoreCase(sPalavra)){
return i;
}
return linearRec(sVet, sPalavra, i+1);
}
//Buscas Binárias
//Busca Binária de Inteiros
public int binaria(int iVet[], int iNum){
int iIni = 0, iMeio, iFim = iVet.length-1;
do{
iMeio = (iIni + iFim)/2;
if (iVet[iMeio] == iNum){
return iMeio;
}
else if (iVet[iMeio] < iNum){
iIni = iMeio + 1;
}
else {
iFim = iMeio - 1;
}
}while (iIni <= iFim);
return -1;
}
//Busca Binária de Double
public int binaria(double dVet[], double dNum){
int iIni=0, iMeio, iFim=dVet.length-1;
do{
iMeio = (iIni + iFim)/2;
if (dVet[iMeio] == dNum){
return iMeio;
}
else if(dVet[iMeio] < dNum){
iIni = iMeio + 1;
}
else {
iFim = iMeio - 1;
}
}while (iIni <= iFim);
return -1;
}
//Busca Binária de Char
public int binaria(char cVet[], char cCarac){
int iIni=0, iMeio, iFim=cVet.length-1;
do{
iMeio = (iIni + iFim)/2;
if (cVet[iMeio] == cCarac) {
return iMeio;
}
else if (cVet[iMeio] < cCarac) {
iIni = iMeio + 1;
}
else {
iFim = iMeio - 1;
}
}while (iIni <= iFim);
return -1;
}
//Busca Binária de String
public int binaria(String sVet[], String sPalavra){
int iIni=0, iMeio, iFim=sVet.length-1;
do{
iMeio = (iIni + iFim)/2;
if (sVet[iMeio].equalsIgnoreCase(sPalavra)){
return iMeio;
}
else if (sVet[iMeio].compareToIgnoreCase(sPalavra)<0){
iIni = iMeio + 1;
}
else{
iFim = iMeio - 1;
}
}while (iIni <= iFim);
return -1;
}
//Buscas Binárias Recursivas
//Busca Binária Recursiva de Inteiros
public int binariaRec(int iVet[], int iNum){
return binariaRec(iVet, iNum, 0, iVet.length-1);
}
public int binariaRec(int iVet[], int iNum, int iIni, int iFim){
int iMeio=(iIni + iFim)/2;
if (iIni > iFim){
return -1;
}
if (iVet[iMeio]==iNum){
return iMeio;
}
if (iVet[iMeio] >iNum){
return binariaRec(iVet, iNum, iIni, iMeio-1);
}
return binariaRec(iVet, iNum, iMeio+1, iFim);
}
//Busca Binária Recursiva de Double
public int binariaRec(double dVet[], double dNum){
return binariaRec(dVet, dNum, 0, dVet.length-1);
}
public int binariaRec(double dVet[], double dNum, int iIni, int iFim){
int iMeio=(iIni + iFim)/2;
if (iIni > iFim) {
return -1;
}
if (dVet[iMeio]==dNum){
return iMeio;
}
if (dVet[iMeio] >dNum) {
return binariaRec(dVet, dNum, iIni, iMeio-1);
}
return binariaRec(dVet, dNum, iMeio+1, iFim);
}
//Busca Binária Recursiva de Char
public int binariaRec(char cVet[], char cCarac){
return binariaRec(cVet, cCarac, 0, cVet.length-1);
}
public int binariaRec(char cVet[], char cCarac, int iIni, int iFim){
int iMeio=(iIni + iFim)/2;
if (iIni > iFim){
return -1;
}
if (cVet[iMeio]==cCarac){
return iMeio;
}
if (cVet[iMeio] >cCarac) {
return binariaRec(cVet, cCarac, iIni, iMeio-1);
}
return binariaRec(cVet, cCarac, iMeio+1, iFim);
}
//Busca Binária Recursiva de String
public int binariaRec(String sVet[], String sPalavra){
return binariaRec(sVet, sPalavra, 0, sVet.length-1);
}
public int binariaRec(String sVet[], String sPalavra, int iIni, int iFim){
int iMeio=(iIni + iFim)/2;
if (iIni > iFim) {
return -1;
}
if (sVet[iMeio].equalsIgnoreCase(sPalavra)){
return iMeio;
}
if (sVet[iMeio].compareToIgnoreCase(sPalavra)>0){
return binariaRec(sVet, sPalavra, iIni, iMeio-1);
}
return binariaRec(sVet, sPalavra, iMeio+1, iFim);
}
}
Nenhum comentário:
Postar um comentário