Bsqueda Secuencial Indexada (Tabla ordenada) C# | Edwin Chavarria
using System; using [Link]; using [Link]; using [Link]; using [Link]; namespace index_numeros { class Program { //Estructura que guardara los valores en sub indeces para la busqueda struct index { public int pos; public int valor; } static int i,k,j,cant;//Variables globales private static void mostrar(int[] datos) { for (i = 1; i <= cant; i++) { [Link] = [Link]; [Link]("{0}:", i); [Link](); [Link]("{0}\t ",datos[i]); } }//Imprime datos en pantalla private static void ordenar(int[] datos) { //Metodo de Buebja //Variables auxiliares int auxcod; //Comienzo del ordenamiento. for (i = 1; i <= cant; i++) { for (k = i + 1; k <= cant; k++) { if (datos[i] > datos[k]) { auxcod = datos[i]; datos[i] = datos[k]; datos[k] = auxcod; } } } }//Ordena los datos por metodo de burbuja private static int crearindex() { if (cant<= 1000)//tamao maximo de la tabla { for (j = 5; j <= 30; j++)//creando intervalos de 5 datos { if (cant % j == 0 && cant != j) return j; } } return -1; }
Estructura de datos
Edwin Chavarra
Bsqueda Secuencial Indexada (Tabla ordenada) C# | Edwin Chavarria
private static int BusqueIndex(int[] datos,int valor) { [Link]("\n\n\n----------------Creando index (intervalo)---------------------"); [Link](); int intervalo = crearindex(),indexcant=0;//indexcant acumulador index[] indice = new index[cant];//variable que quarde los indice en estructura vector if (intervalo == -1) { [Link]("No se creo ningun intervalo adecuado....."); return -1; } else { [Link]("\nEl intervalo es: {0}", intervalo); [Link] = [Link]; [Link]("\t\tAsignando valores y Creando subindices "); [Link](); [Link](); for (i = 0; i <= cant; i = i + intervalo)//Asignar los valores correspondientes a los indices empezando de cero. { indice [indexcant].pos = i;//asiqnando posicion indice [indexcant].valor = datos[i];//asiqnando el valor. indexcant++; } [Link] = [Link]; [Link]("\t\t\t......Buscando el dato\n"); [Link](); [Link]("\tIntervalos creados y valor en el intervalo\n"); for (i = 0; i < indexcant; i++)//buscando el dato en los indices creados { [Link]("\n {0}, {1}", indice[i].pos, indice[i].valor); } [Link]();//Termina la asiqnacion de los intervalos //Buscando el dato [Link] = [Link]; [Link]("\t\t\tBuscando......\n"); [Link](); for (i = 0; i < indexcant; i++)//cantidad de index { [Link]("El Index(Intervalo) es: {0}\n", indice[i].pos); [Link]("\t\t--------- {0} >= {1}\n", indice[i].valor, valor);// comparando [Link](); if (indice[i].valor >= valor)//comparando dato con un intervalo { [Link]("\t\t********** S I ****"); [Link](); [Link]("Estamos buscando {0} entre el intervalo {1} a {2} \n", valor, indice[i].pos - intervalo, indice[i].pos); for (j = (indice[i].pos - intervalo); j <= indice[i].pos; j++) { [Link]("\t\t buscando en posicion {0} comparando {1}={2} \n", j, valor, datos[j]); [Link]();
Estructura de datos
Edwin Chavarra
Bsqueda Secuencial Indexada (Tabla ordenada) C# | Edwin Chavarria
if (datos[j] == valor) { [Link]("\t\t...... SI \n [Link](); return j; } [Link]("\t\t...... N O"); } return -1; } [Link]("\t\t********** N O [Link](); } return -1;
3
RETORNANDO VALOR DE {0}", j);
****Pasar al siguiente indice");
} } static void Main(string[] args) { Random Numero= new Random();// generar numeros aleatoriamente int[] Arreglo = new int[10000]; ;//declaramos el arreglo [Link]("Cuantos datos desea ingresar:"); cant = Convert.ToInt32([Link]()); //Ingresando a datos aleaoriamente for(i=1;i<=cant ;i++) { Arreglo[i] =[Link](1,999);//(desde , Hasta) } //Datos manualemente /*for (i = 1; i <= cant; i++) { Arreglo[i] = Convert.ToInt32([Link]()); }*/ //Mostrando datos [Link]("\n\n\n-----------------------------------------------"); mostrar(Arreglo); [Link](); [Link]("\n\n\n----------------Ordenado---------------------"); ordenar(Arreglo); mostrar(Arreglo); [Link]("\n\n\nIngrese el dato que desea buscar:"); int buscar = Convert.ToInt32([Link]()); if (BusqueIndex(Arreglo, buscar) != -1) [Link]("{0} se encuentra en la posicin: {1}",buscar, j); else [Link]("{0} no se encuentra en la lista", buscar); // busquedaindex(n, codigo, dato); [Link](); [Link](); } } }
Estructura de datos
Edwin Chavarra