cl.cromer.estructuras

## Class Array

- java.lang.Object
- - cl.cromer.estructuras.Array

    public final class Array
    extends java.lang.Object

Crear una estructura de dato de tipo array.

Author:
  Chris Cromer

### Nested Class Summary

Nested Classes
`class` `Array.ParticionarResult` Esta clase contiene los resultados de Partricionar.
`static class` `Array.Tipos` Esta clase contiene los arbolTipo de array.

### Field Summary

Fields
`private java.lang.String[]` `array` El array.
`private boolean` `ordered` Si es de tipo ordenado o simple.
`private int` `size` La cantidad de elementos en el array.

### Constructor Summary

Constructors
Constructor and Description
`Array(int tamano)` Crear el array con el tamaño pasador por argumento.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `burbuja(boolean paso)` Ordenar el array usando burbuja.
`int` `buscar(int valor)` Buscar si existe un valor dentro el array.
`boolean` `eliminar(int valor)` Eliminar un valor del array si existe.
`java.lang.String` `getIndice(int indice)` Devolver el valor que está guardado en cada indice del array.
`boolean` `insercion(boolean paso)` Ordenar el array usando inserción.
`boolean` `insertar(int valor)` Insertar un valor al array.
`boolean` `isOrdered()` Dovolver si el tipo es ordenado o no.
`void` `llenar()` Llenar el array con valores al azar.
`boolean` `merge(boolean paso)` Ordenar el array usando merge.
`private boolean` `merge(java.lang.String[] temp, int prevIzquerda, int prevMedio, int prevDerecha, boolean paso)` Este metodo hace los cambios al array.
`void` `nuevo()` Borrar el array para que sea como nuevo.
`private Array.ParticionarResult` `particionar(int izquerda, int derecha, java.lang.String pivot)` Particionar el array desded la izquerda y derecho usando un pivot.
`boolean` `quick(boolean paso)` Ordenar el array usando quick.
`private boolean` `recurenciaMerge(java.lang.String[] temp, int izquerda, int derecha, boolean paso)` El metodo recursivo para ordenar con merge.
`private boolean` `recurenciaQuick(int izquerda, int derecha, boolean paso)` Metodo recursivo para ordenar using quick sort.
`boolean` `seleccion(boolean paso)` Ordenar el array usando selección.
`void` `setOrdered(boolean ordered)` Cambiar el tipo de array entre ordenado o simple.
`boolean` `shell(boolean paso)` Ordenar el array usando shell.
`int` `size()` Devolver la cantidad de elementos en el array.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### array

    private final java.lang.String[] array

El array.

#### size

    private int size

La cantidad de elementos en el array.

#### ordered

    private boolean ordered

Si es de tipo ordenado o simple.

### Constructor Detail

#### Array

    public Array(int tamano)

Crear el array con el tamaño pasador por argumento.

Parameters:
  `tamano` - int: El tamaño del array a crear.

### Method Detail

#### isOrdered

    public boolean isOrdered()

Dovolver si el tipo es ordenado o no.

Returns:
  boolean: Si el tipo de array es ordenado.

#### setOrdered

    public void setOrdered(boolean ordered)

Cambiar el tipo de array entre ordenado o simple.

Parameters:
  `ordered` - boolean: Si es verdad, es de tipo ordenado, sino el tipo es simple.

#### insertar

    public boolean insertar(int valor)

Insertar un valor al array.

Parameters:
  `valor` - int: El valor a insertar.
Returns:
  boolean: Verdad si fue exitoso, sino falso.

#### eliminar

    public boolean eliminar(int valor)

Eliminar un valor del array si existe.

Parameters:
  `valor` - int: El valor a eliminar.
Returns:
  boolean: Verdad si fue encontrado y borrado, sino falso.

#### buscar

    public int buscar(int valor)

Buscar si existe un valor dentro el array.

Parameters:
  `valor` - int: Valor a buscar.
Returns:
  int: Devuelve el indice donde fue encontrado, o -1 si no fue encontrado.

#### nuevo

    public void nuevo()

Borrar el array para que sea como nuevo.

#### llenar

    public void llenar()

Llenar el array con valores al azar.

#### getIndice

    public java.lang.String getIndice(int indice)

Devolver el valor que está guardado en cada indice del array. Se usa para construir la grafica.

Parameters:
  `indice` - int: El indice que desea ver.
Returns:
  String: El valor que está en dicho indice.

#### size

    public int size()

Devolver la cantidad de elementos en el array.

Returns:
  int: Devolver la cantidad de elementos en el array.

#### burbuja

    public boolean burbuja(boolean paso)

Ordenar el array usando burbuja.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### insercion

    public boolean insercion(boolean paso)

Ordenar el array usando inserción.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### seleccion

    public boolean seleccion(boolean paso)

Ordenar el array usando selección.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### shell

    public boolean shell(boolean paso)

Ordenar el array usando shell.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### quick

    public boolean quick(boolean paso)

Ordenar el array usando quick.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### recurenciaQuick

    private boolean recurenciaQuick(int izquerda,
                                    int derecha,
                                    boolean paso)

Metodo recursivo para ordenar using quick sort.

Parameters:
  `izquerda` - int: La posición del quick desded la izquerda.
  `derecha` - int: La posición del quick desded la derecha..
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### particionar

    private Array.ParticionarResult particionar(int izquerda,
                                                int derecha,
                                                java.lang.String pivot)

Particionar el array desded la izquerda y derecho usando un pivot.

Parameters:
  `izquerda` - int: La posición del quick desde la izquerda.
  `derecha` - int: La posición del quick desde la derecha.
  `pivot` - String: El valor a comparar con los otros.
Returns:
  ParticionarResult: Los resultados de particionar.

#### merge

    public boolean merge(boolean paso)

Ordenar el array usando merge.

Parameters:
  `paso` - boolean: Si es verdad, solo hago en paso del ordenamiento, sino ordenear todos los elementos.
Returns:
  boolean: Verdad si algo cambió, sino falso.

#### recurenciaMerge

    private boolean recurenciaMerge(java.lang.String[] temp,
                                    int izquerda,
                                    int derecha,
                                    boolean paso)

El metodo recursivo para ordenar con merge.

Parameters:
  `temp` - String[]: El array temporario para trabajar.
  `izquerda` - int: El lado izquerda.
  `derecha` - int: El lado derecha.
  `paso` - boolean: Verdad si es paso por paso.
Returns:
  boolean: Devolver si algo cambió.

#### merge

    private boolean merge(java.lang.String[] temp,
                          int prevIzquerda,
                          int prevMedio,
                          int prevDerecha,
                          boolean paso)

Este metodo hace los cambios al array.

Parameters:
  `temp` - String[]: El array temporario para trabajar.
  `prevIzquerda` - int: El valor previo de la izquerda.
  `prevMedio` - int: El valor previo al medio.
  `prevDerecha` - int: El valor previo de la derecha.
  `paso` - boolean: Si es paso por paso.
Returns:
  boolean: Devolver si algo cambió.