Está en la página 1de 3

1.

implemente en java una función en lenguaje java que, dado un arreglo de


enteros, a, y un número entero, n, calcule y retorne el número de ocurrencias
de n dentro de a.

public class Prueba{


public static void main(String[] args) {
// TODO Auto-generated method stub

int [] arreloEnteros = {1,2,3,1,2,3,4,7,5,9,4};


int numeroEntero=2;
int ocurrencias=0;
for(int i =0; i<arreloEnteros.length; i++) {
if(arreloEnteros[i]==numeroEntero) {
ocurrencias=ocurrencias+1;
System.out.println(" Numero de ocurrencias: " + ocurrencias);
}
}
}
}

2. Investigue acerca del algoritmo de ordenamiento en burbuja y:

ALGORITMO DE LA BURBUJA

El algoritmo de la burbuja es uno de los métodos de ordenación más conocidos y uno


de los primeros que aprenden los programadores.

Consiste en comparar pares de elementos adyacentes en un array y si están


desordénanos intercambiarlos hasta que estén todos ordenados.

Si A es el array a ordenar, se realizan A.length-1 pasadas. Si la variable i es la que


cuenta el número de pasadas, en cada pasada i se comprueban los elementos
adyacentes desde el primero hasta A.length-i-1 ya que el resto hasta el final del array
están ya ordenados. Si los elementos adyacentes están desordenados se intercambian.

http://puntocomnoesunlenguaje.blogspot.com/2012/07/metodo-de-ordenacion-burbuja.html

a. Reproduzca un ejemplo (eso significa que usted debe seleccionar un conjunto


de números desordenado y mostrar paso a paso cuál es el efecto de aplicar el
algoritmo de burbuja sobre él).

Un Ejemplo de cómo funciona este método es:

Tengo que ordenar 5, 8, 3, 4 la idea de este es que el número mayor quede al lado
derecho y el menor al lado izquierdo.

5 8 3 4
5 3 8 4
5 3 4 8
3 5 4 8
3 4 5 8
b. Responda ¿En qué consistiría el peor caso y por qué implica una complejidad
algorítmica de O(n2)?

Con respecto a los análisis algorítmicos tenemos varios métodos para calcular la
complejidad y la eficiencia de un algoritmo dependiendo de su tasa de crecimiento.

Se conoce como notación asintótica O y esta se centra en el análisis del peor caso, que
básicamente habla de que la función ejecute el máximo de operaciones posible.

Se puede usar para descubrir la complejidad tanto temporal como espacial del
algoritmo.

La notación asintótica puede representar el peor escenario, que es cuando se ejecuta


el máximo de operaciones o el mejor escenario que es cuando se ejecuta el mínimo
número de operaciones posible.

Esto implica una complejidad algorítmica de O(n2)ya que cuando hablamos de esta
representación, se haba de u algoritmo que se ejecutará en X tiempo y este tiempo
crecerá en proporción directa con el cuadro del tamaño del conjunto de entradas.
Básicamente por la connotación O se asume que se dará el peor caso por la ejecución
máxima de iteraciones posibles. A esto se le llama Método de Java con complejidad de
orden cuadrático y se representa de la siguiente manera.

static boolean busquedaSimpleMatrizCuadrada(int matriz[][], int x) {

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

for(int j=0; j<matriz.length; j++){

if(x==matriz[i][j]) {

return true;

return false;

c. implemente en Java una función que ordene un arreglo de números enteros


usando el algoritmo de burbuja.

Teniendo en cuenta que el método burbuja es un algoritmo de ordenamiento, se ha


creado el siguiente arreglo para que el usuario ingrese los valores y luego al ejecutar el
arreglo, el algoritmo de ordenamiento (Burbuja) ordene los números intercambiando la
posición si están en el orden equivocado.
Public class Burbuja {

public static void main (String[] args) {


Scanner entrada = new Scanner (System.in);
int arreglo[],nElementos,aux;

nElementos = Integer.parseInt(JOptionPane.showInputDialog(“Ingrese la
cantidad de elementos para el arreglo”)

arreglo = new int[nElemntos];

for(int i=0;i<nElementos;i++){
System.out.print((i+1)+”Ingrese un número”);
arreglo[i] = entrada.nexInt ();

for(int i=0;i<(nElementos-1);i++){
for(int h=0;h<(nElementos);h++){
if(arreglo[h] > arreglo[h+1]){
aux = arreglo[h];
arreglo[h] = arreglo[h+1];
arreglo[h+1] = aux;
}

System.out.print(“\nArreglo ordenadocorrectamente:”)
for(int i=0;i<nElementos;i++){
System.out.print(arreglo[i]+” - ”);

También podría gustarte