/** * Busca em cada elemento do dataset (desordenado) pelo room_id passado como parâmetro * A variável loops é o auxiliar que conta as comparações */ public static void buscaSequencial(List <DataSetEl> dataSet, long roomId) { int loops = 0; bool find = false; foreach (DataSetEl dataSetEl in dataSet) { loops++; if (dataSetEl.room_id == roomId) { find = true; break; } } Console.WriteLine("Comparações = " + loops); if (find) { DataSetEl.printroom(dataSet[loops - 1]); } else { DataSetEl.printroom(null); } }
public void pesquisar(long roomId) { int loops = 0; Elemento elementoaux = busca(roomId, ref loops); if (elementoaux == null) { Console.WriteLine("Quarto não encontrado."); } else { DataSetEl.printroom(elementoaux.quarto); Console.WriteLine(""); Console.WriteLine("Comparações = " + loops); } }
/* * Função que encapsula as chamadas recursivas que irão identificar o quarto buscado */ public static void buscaBinaria(List <DataSetEl> dataSet, long roomId) { int loops = 0, index = 0; index = buscaBinaria(dataSet, roomId, 0, dataSet.Count - 1, ref loops); Console.WriteLine("Comparações = " + loops); if (index != -1) { DataSetEl.printroom(dataSet[index]); } else { DataSetEl.printroom(null); } }
/** * Faz uma chamada de uma função recursiva que irá dividir os ramos da arvore aproximando-se * do valor buscado. * */ public Node pesquisar(long roomId) { int loops = 0; Node node = pesquisar(this.raiz, roomId, ref loops); Console.WriteLine("Comparações = " + loops); if (node != null) { DataSetEl.printroom(node.elemento); } else { DataSetEl.printroom(null); } return(node); }