Anda di halaman 1dari 11

UNIVERSIDAD TCNICA PARTICULAR DE LOJA

PROGRAMACION DE ALGORITMOS

POR: Eylin Caldern Carrin. II Ciclo Sistemas Informticos y Computacin

Definicin de Arreglo
Un arreglo o array es un conjunto de datos ordenados que est formado por un nmero fijo de elementos contiguos y de un mismo tipo, por lo cual son estructuras estticas. Los datos individuales que se encuentran en el arreglo se llaman elementos del arreglo. Para definir un tipo estructurado arreglo, se debe especificar el tipo base y el nmero de elementos. Los arreglos se clasifican en: Unidimensionales (vectores o listas) Multidimensionales ( tablas o matrices)

A los arreglos se los declara de la siguiente manera: Tipo_dato nombre_array[ ] Ejemplo:int meses_anio ]; Se inicializa de la siguiente manera: nombre_array = tipo_dato [tamao] Ejemplo : meses _anio= new String [12]; Se accede al arreglo de la siguiente manera: Nombre_array[ posicin]

Declaracin, inicializacin y acceso

Ejemplo: meses[0] = Enero; meses[5] = Junio;

Clasificacin de los Mtodos de Ordenacin de Arreglos


MTODOS DIRECTOS: Mtodo de Intercambio Directo / Burbuja Mtodo de Insercin Directa Mtodo de Seleccin Directa MTODOS AVANZADOS Mtodo de ordenacin rpida / QuickSort

Mtodos Directos Mtodo de Intercambio


Directo / elemento del arreglo que vaya a ser Burbuja Este mtodo consiste en revisar cada
ordenado con el siguiente, intercambindose de posicin si estn en el orden equivocado. Es necesario en este mtodo revisar varias veces todo el arreglo hasta que no se necesiten ms intercambios, lo que significa que el arreglo esta ordenado completamente. Este nombre de burbuja se dice por la forma con la que suben por los elementos de los arreglos durante los intercambios, como si fueran pequeas "burbujas". Tambin es conocido como el mtodo del intercambio directo, ya que solo usa comparaciones para operar elementos, se lo considera un public void burbuja (int [] a){ algoritmo de comparacin siendo el ms sencillo de usar. for (int i=a.length-1; i>0; i--) for(int j=0; j<i; j++) if (a[ j ] > a[ j+1 ] ){ int temp = a[ j ]; a[ j ]= a[ j+1 ]; a[ j+1 ] = temp; } }

Mtodos Directos
Mtodo de Insercin Directa
Este mtodo consiste en revisar cada elemento del arreglo que vaya a ser ordenado con el siguiente, intercambindose de posicin si estn en el orden equivocado. Es necesario en este mtodo revisar varias veces todo el arreglo hasta que no se necesiten ms intercambios, lo que significa que el arreglo esta ordenado completamente. Este nombre de burbuja se dice por la forma con la que suben por los elementos de los arreglos durante los intercambios, como si fueran pequeas "burbujas". Tambin es conocido como el mtodo del intercambio directo, ya que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparacin siendo el ms sencillo de usar.

public void selecciondirecta(int n) { int i,j,min,k; int cambio; for(i=0;i<n;i++) { min=arr[i]; k=0; cambio=0; for(j=i+1;j<n;j++) { if (arr[ j ]<min) { min=arr[ j ]; k=j; cambio=1;} } if (cambio ) { arr[ k ]=arr[ i ]; arr[ i ]=min; } } }

Mtodos Directos Mtodo de Seleccin Directa


Este mtodo consiste en recorrer un arreglo desde la primera posicin hasta n-1, en cada ves que se recorre se busca encontrar el elemento ms pequeo, de tal forma que despus de la primera ves en la posicin 0 este el elemento ms pequeo de todo el arreglo; en la segunda ves el segundo elemento ms pequeo y as sucesivamente hasta ordenar todos los elementos. Este mtodo no es el ms eficiente, pero es uno de lo ms fciles de implementar.

int i,j,aux; Se da valores a los elementos del arreglo for(i=1;i { // Se intenta aadir el elemento i. aux=array[i]; for(j=i-1;j>=0;j--) // Se recorre la sublista de atrs a adelante para buscar { // la nueva posicin del elemento i. if(aux>array[j]) // Si se encuentra la posicin: { array[j+1]=aux; // Colocarlo break; // y colocar el siguiente nmero. } else // si no, sigue buscndola. array[j+1]=array[j]; } if(j==-1) // si se ha buscado en todas las posiciones y no se ha encontrado la correcta array[0]=aux; // es que la posicin es al principio del todo. }

Mtodo de Seleccin Directa / QuickSort a partir de la solucin de Este mtodo consiste en resolver un problema
subproblemas del mismo tipo, pero de menor tamao. Si los subproblemas son todava relativamente grandes se aplicar de nuevo esta tcnica hasta alcanzar subproblemas lo suficientemente pequeos para ser solucionados directamente. Se plantea el problema de forma que pueda ser descompuesto en k subproblemas del mismo tipo, pero de menor tamao. Es decir, si el tamao de la entrada es n, hemos de conseguir dividir el problema en k subproblemas, cada uno con una entrada de tamao nk y donde 0 nk < n. A esta tarea se le conoce como divisin. Se resuelven independientemente todos los subproblemas. El tamao de los subproblemas debe ser menor que el tamao original del problema. Finalmente se deben combinar las soluciones obtenidas anteriormente para construir la solucin del problema original.

Mtodos Avanzados

blic void quicksort (int[] a, int izq, int der) { int i = izq; int j =der; int pivote = a[ (izq + der) / 2]; do{ while (a[ i ] < pivote) { i++ } while ( a[ j ]> pivote) { j } if (i <= j) { int aux = a[ i ]; a[ i ] = a[ j ]; a[ j ] = aux; i++; j--; } } while (i <= j); if (izq < j) { quicksort(a, izq, j); } if (i < der) { quicksort(a, i, der); } }

Anda mungkin juga menyukai