Está en la página 1de 6

UNIVERSIDAD DE AQUINO BOLIVIA

GUÍA DE ESTUDIO
Materia: Programación Avanzada
Docente: Ing. Simón Onofre
Carrera: Ingeniería de Sistemas

UNIDAD I: ESTRUCTURA DE DATOS Y RECURSIVIDAD

1.1 Definición de Estructura de Datos


Una estructura de datos es una forma particular de organizar datos en una
computadora para que puedan ser utilizados de manera eficiente.
Diferentes tipos de estructuras de datos son adecuados para diferentes tipos
de aplicaciones, y algunos son altamente especializados para tareas específicas.
Las estructuras de datos son un medio para manejar grandes cantidades de datos
de manera eficiente para usos tales como grandes bases de datos.
Por lo general, las estructuras de datos eficientes son clave para
diseñar algoritmos eficientes. Algunos métodos formales de diseño y lenguajes de
programación destacan las estructuras de datos, en lugar de los algoritmos, como
el factor clave de organización en el diseño de software.
Las estructuras de datos se basan generalmente en la capacidad de
un ordenador para recuperar y almacenar datos en cualquier lugar de su memoria.
1.2 Clasificación
Las Estructuras de datos pueden clasificarse en lineales y no lineales. Una
Estructura de datos es lineal si sus elementos forman una secuencia o, en otras
palabras una lista lineal.
 Arrays
Lineales  Pilas
 Colas
 Listas

Clasificación
Estructura de Datos

Arboles Binarios
No Lineales Arboles de búsquedas
binarias

Algunos Tipos de estructuras de datos:

Arrays

La estructura de datos más simple es el array lineal (o unidimensional). Un array


lineal es una lista de números finitos de datos similares, referenciados por medio de
un conjunto de n números consecutivos, normalmente 1,2,3, …, n.

Pila

Una pila, también denominada sistema último-dentro primero-fuera (LIFO), es una


lista lineal en la cual las inserciones y extracciones tienen lugar sólo por un extremo
llamado cúspide.

Cola

Una cola, también denominada sistema primero-dentro primero-fuera (FIFO), es


una lista lineal en la cual las extracciones se realizan siempre por un extremo
llamado frente y las inserciones por el extremo contrario llamado final de la lista.
1.3 Implementación de Estructura de Datos en java.util

Se procederá a ordenar de forma descendente un vector de elementos enteros.


Método burbuja

Ordenar un vector de forma descendente


package proyecto1;
import java.util.*;
public class Principal_Vector {
public static void main(String[] arg) {
int A[]=new int[100];
Scanner leer=new Scanner(System.in);
Vector pv=new Vector();
int n;
System.out.println("Ingrese el nro. de elementos del vector: ");
n=leer.nextInt();

System.out.println("Llenando los elementos del vector: ");


pv.llenar_vec(A, n);

System.out.println("Los elementos del vector son:");


pv.mostrar_vec(A, n);

System.out.println("\n Ordenando los elementos del vector de forma descendente: ");


pv.ordenar(A, n);
pv.mostrar_vec(A, n);

System.out.println();
}
}
Clase Vector
public class Vector {
// Procedimiento para llenar un vector
public void llenar_vec(int V[], int n)
{
for(int i=0;i<n;i++)
{
V[i]=(int)(Math.random()*10);
}
}
// Ordenar un vector de forma descendente

public void ordenar(int V[], int n)


{ int aux;
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
if (V[j] < V[j + 1])
{
aux = V[j+1];
V[j+1] = V[j];
V[j] = aux;
}
}
}
}

// Procedimiento para Mostrar los elementos de un vector


public void mostrar_vec(int V[],int n) {
for(int i=0;i<n;i++) {
System.out.print(V[i]+", ");
}
}

Tiempo de ejecución en java


En Java, podemos usar System.currentMillis(); este devuelve un número long que
devuelve los milisegundos
La idea es poner en una variable del tipo long, donde queramos empezar y otra
variable donde queramos al final.

En el ejemplo anterior al aplicar el tiempo de ejecución queda de la siguiente


manera:

Ejemplo de Tiempo de ejecución en ordenar un vector de forma descendente


import java.util.*;
public class Principal_Vector {

public static void main(String[] arg) {


int A[]=new int[500];
Scanner leer=new Scanner(System.in);
Vector pv=new Vector();
int n;
System.out.println("Ingrese el nro. de elementos del vector: ");
n=leer.nextInt();

System.out.println("Llenando los elementos del vector: ");


pv.llenar_vec(A, n);

System.out.println("Los elementos del vector son:");


pv.mostrar_vec(A, n);

System.out.println("\n Ordenando los elementos del vector de forma


descendente: ");
//Tiempo inicio
long inicio = System.currentTimeMillis();
pv.ordenar(A, n);
//Tiempo final
long fin = System.currentTimeMillis();

pv.mostrar_vec(A, n);
double tiempo = (double) (fin - inicio);
System.out.println();
System.out.println(tiempo +" milisegundos");

System.out.println();
}
}

ACTIVIDAD EVALUATIVA DE LA CLASE


Luego de pasar la tercera clase, debe realizar un ejercicio práctico que consiste en
ordenar un vector aplicando el método de inserción y luego debe calcular el tiempo
que tardó en ordenar.

También podría gustarte