Está en la página 1de 3

public static void shell(int A[]) {

int salto, aux, i;

boolean cambios;

for (salto = A.length / 2; salto != 0; salto /= 2) {

cambios = true;

while (cambios) { // Mientras se intercambie algún elemento

cambios = false;

for (i = salto; i < A.length; i++) // se da una pasada

if (A[i - salto] > A[i]) { // y si están desordenados

aux = A[i]; // se reordenan

A[i] = A[i - salto];

A[i - salto] = aux;

cambios = true; // y se marca como cambio.

//Imprimir

static void Impresion (int[] numeros){

for (int i = 0; i < numeros.length; i++) {

System.out.println("["+numeros[i]+"]");
}

Metodo binario

Entonces una función corta para implementar esta búsqueda sería así:

function busquedaBinaria(arr, busqueda) {

const puntoMedio = Math.floor(arr.length / 2);

if (arr[puntoMedio] === busqueda) {

return arr[puntoMedio];

if (arr[puntoMedio] < busqueda && arr.length > 1) {

return busquedaBinaria(arr.slice(puntoMedio), busqueda);

if (arr[puntoMedio] > busqueda && arr.length > 1) {

return busquedaBinaria(arr.slice(0, puntoMedio), busqueda);

}
return "no encontrado :(";

//////////////

function busquedaBinaria(arr, val) {

let inicio = 0;

let fin = arr.length - 1;

while (inicio <= fin) {

const pm = Math.floor((inicio + fin) / 2);

if (arr[pm] === val) {

return pm;

} else if (arr[pm] < val) {

inicio = pm + 1;

} else {

fin = pm - 1;

return -1;

También podría gustarte