diff --git a/Complejidad/src/EjemplosComplejidad.java b/Complejidad/src/EjemplosComplejidad.java new file mode 100644 index 0000000..35de1bb --- /dev/null +++ b/Complejidad/src/EjemplosComplejidad.java @@ -0,0 +1,31 @@ +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +public class EjemplosComplejidad { + + public static void main(String[] args) { + + int N = 10000; + + int[][] numeros = new int[N][N]; + for(int i =0; i nums[i]) { // TODO: y si fueran String + // detectamos que no están ordenados + PruebasOrdenacion.swap(nums, i-1, i); + haySwap = true; + } + } + } + System.out.println("he ordenado con "+ contador+" comparaciones"); + } +} diff --git a/Ordenacion/src/GeneradorDatos.java b/Ordenacion/src/GeneradorDatos.java new file mode 100644 index 0000000..05aa1e9 --- /dev/null +++ b/Ordenacion/src/GeneradorDatos.java @@ -0,0 +1,21 @@ +import java.util.Arrays; +import java.util.Random; + +public class GeneradorDatos { + + private static Random r = new Random(23); + + + public static void main(String[] args) { + int[] nums = arrayEnteros(10); + System.out.println(Arrays.toString(nums)); + } + + public static int[] arrayEnteros(int l) { + int[] arr = new int[l]; + for (int i = 0; i < arr.length; i++) { + arr[i] = r.nextInt(100); + } + return arr; + } +} diff --git a/Ordenacion/src/Insercion.java b/Ordenacion/src/Insercion.java new file mode 100644 index 0000000..edab0c9 --- /dev/null +++ b/Ordenacion/src/Insercion.java @@ -0,0 +1,4 @@ + +public class Insercion { + +} diff --git a/Ordenacion/src/PruebasOrdenacion.java b/Ordenacion/src/PruebasOrdenacion.java new file mode 100644 index 0000000..1e3cfab --- /dev/null +++ b/Ordenacion/src/PruebasOrdenacion.java @@ -0,0 +1,69 @@ +import java.util.Arrays; + +public class PruebasOrdenacion { + + + public static void main(String[] args) { + int[] nums = GeneradorDatos.arrayEnteros(1000); + imprimeArray(nums); + Burbuja.sort(nums); + imprimeArray(nums); + + System.out.println("Está el numero 100: "+ buscaNumero(nums, 100)); + } + + public static void swap(int[] nums, int i, int j) { + int temp = nums[i]; + nums[i] = nums[j]; + nums[j] = temp; + } + public static void swap(String[] nombres, int i, int j) { + String temp = nombres[i]; + nombres[i] = nombres[j]; + nombres[j] = temp; + } + + + public static void imprimeArray(int[] nums) { + System.out.println(Arrays.toString(nums)); + } + + public static boolean buscaNumero(int[] nums, int buscado) { + // como se hacía en prog +// for (int i = 0; i < nums.length; i++) { +// if (buscado == nums[i]) { +// return true; +// } +// } +// return false; + + // como lo hacemos ahora + + return busquedaBinaria(nums, buscado, 0, nums.length-1); + + } + + private static boolean busquedaBinaria(int[] nums, int buscado, int inferior, int superior) { + // donde miramos? + int pos = (superior+inferior)/2; + + if(superior == inferior+1 ) { + return (nums[superior] == buscado) || (nums[inferior] == buscado); + } + + if(nums[pos] == buscado) { + return true; + } else if( nums[pos] < buscado ) { + //busco por la derecha + int n_sup = superior; + int n_inf = pos; + return busquedaBinaria(nums, buscado, n_inf, n_sup); + } else { + //busco por la izquierda + int n_sup = pos; + int n_inf = inferior; + return busquedaBinaria(nums, buscado, n_inf, n_sup); + } + + } +} diff --git a/Ordenacion/src/Seleccion.java b/Ordenacion/src/Seleccion.java new file mode 100644 index 0000000..d47d6e1 --- /dev/null +++ b/Ordenacion/src/Seleccion.java @@ -0,0 +1,7 @@ + +public class Seleccion { + + public static void sort(int[] nums) { + + } +}