/ ** Toma la entrada de una matriz llena hasta n.
* Ordenar la matriz en orden ascendente
* Buscar una entrada dada en la matriz
- ¿Qué significa esta notación sigma?
- ¿Cómo reduce () tomar la entrada de múltiples map ()?
- ¿Qué es el algoritmo ABC?
- ¿Cómo un programa de razonamiento poco preciso asigna 8 gb de memoria en 3 segundos?
- Cómo imprimir rutas en forma DFS en gráficos
* Todos usando recursividad
* /
import java.util. *;
clase pública Binary_Search
{
Scanner sc = nuevo escáner (System.in);
int arr [] = nuevo int [50]; int limit, search, temp, a, b, c, d;
Búsqueda binaria()
{
límite = 0;
búsqueda = 0;
temp = 0;
a = 0; // almacena el primer índice
b = 0; // almacena el último índice
c = 0; //medio
}
nulo readData ()
{
System.out.println (“Ingrese el límite”);
limit = sc.nextInt ();
System.out.println (“Rellenar la matriz”);
para (int i = 0; i <límite; i ++)
{
arr [i] = sc.nextInt ();
}
System.out.println (“Ingrese el valor a buscar”);
búsqueda = sc.nextInt ();
a = 0;
b = límite-1;
}
Ordenación nula (int n)
{
si (n <límite)
{
para (int j = 1; j <limit-n; j ++)
{
if (arr [j-1]> arr [j])
{
temp = arr [j-1];
arr [j-1] = arr [j];
arr [j] = temp;
}
}
Ordenar (n + 1);
}
}
void display_sorted ()
{
System.out.print (“La matriz ordenada (orden ascendente):”);
para (int i = 0; i <límite; i ++)
{
System.out.print (arr [i] + “”);
}
System.out.println ();
}
int binary_search (int n, int s)
{
c = (a + b) / 2; // alteración del índice medio en cada llamada recursiva
if (n <= b) // al principio n = 0 que se incrementa en 1 en cada llamada recursiva
{
if (arr [c] <s)
a = c + 1;
más si (arr [c] == s)
{
d = arr [c];
binary_search (b + 1, s); // el último valor actualizado de b aumentó en 1 para satisfacer el caso base
}
más si (arr [c]> s)
b = c-1;
binary_search (n + 1, s);
} // a, b, c actualizado regularmente según las condiciones internas si está satisfecho
retorno d;
}
void display_search ()
{
if (binary_search (0, búsqueda) == búsqueda)
System.out.println (“Búsqueda encontrada:” + binary_search (0, search) + “en el índice:” + c); // c tiene el índice del valor buscado en arr []
más
System.out.println (“Búsqueda no encontrada”);
}
public static void main ()
{
Binary_Search obj = new Binary_Search ();
obj.readData ();
obj.Sort (0);
obj.display_sorted ();
obj.display_search ();
}
}