Sunteți pe pagina 1din 6

Vectores Es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos

de la matriz. Desde el punto de vista lgico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensin, la dimensin principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las ms fciles de imaginar son los de una, dos y tres dimensiones. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sera ms adecuado utilizar una lista, ya que esta estructura puede cambiar de tamao fcilmente durante la ejecucin de un programa. Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tiene una posicin asociada que se usar para accederlos. Est posicin o ndice ser siempre un nmero entero positivo. En C la cantidad de elementos que podr contener un vector es fijo, y en principio se define cuando se declara el vector. Los vectores se pueden declarar de la siguiente forma: tipo_elemento nombre[largo]; Esto declara la variable nombre como un vector de tipo_elementos que podr contener largo cantidad de elementos, y cada uno de estos elemento podr contener un valor de tipo tipo_elemento. Por ejemplo: double valores[128]; En este ejemplo declaramos un vector de 128 elementos del tipo double, los ndices de los elementos iran entre 0 (para el primer elemento y 127 para el ltimo). De la misma forma que con las otras declaraciones de variables que hemos visto se le puede asignar un valor iniciar a los elementos. O tambin se pueden declarar: tipo_elemento nombre[largo]={valor_0, valor_1, valor_2}; En caso estamos asignadole valores a los primeros 3 elementos del vector nombre. Notar que largo debe ser mayor o igual a la cantidad de valores que le estamos asignando al vector, en el caso de ser la misma cantidad no aporta informacin, por lo que el lenguaje nos permite escribir:

tipo_elemento nombre[]={valor_0, valor_1, valor_2}; Que declarar nombre como el vector de largo 3. Para acceder a un elemento accederemos a travs de su posicin. Es decir: tipo_elemento elemento; ... elemento = nombre[2];

MTODOS DE BSQUEDA Los mtodos de bsqueda nos permiten recuperar informacin de un vector o un archivo, que contenga una lista de datos. Por ejemplo se puede obtener el nombre y el nmero telefnico de nuestra agenda de contactos o la nota obtenida por un alumno en la lista de un curso. Cuando se realizan bsquedas sobre vectores, se desea es encontrar la posicin que ocupa el elemento buscado dentro de la lista de elementos que contiene el vector. Para la bsqueda de informacin en archivos es necesario realizar la bsqueda a partir de un campo clave dentro del archivo.

Bsqueda Secuencial o Lineal: En este mtodo se recorre el vector desde el primer elemento hasta el ultimo, comparando cada elemento del vector con el valor buscado, hasta que se encuentre el elemento o se llegue al final del vector. Este mtodo es recomendado para realizar bsquedas con pocos datos.

Bsqueda Binaria: Este mtodo es una tcnica eficaz para realizar bsquedas en vectores o archivos que contengan un mayor nmero de datos. Este mtodo divide el vector en mitades de manera sucesiva hasta que encuentra el dato buscado, es decir, el mtodo divide el vector y se examina el elemento central del vector. Si es el elemento que se busca, entonces la bsqueda finaliza, pero sino se determina si el dato buscado esta en la primera o la segunda mitad del vector y se repite el proceso en la nueva mitad, buscando su elemento central. Para realizar la bsqueda binaria el vector debe estar ordenado y se comienza comparando con el elemento central.

Mtodos de Ordenamiento

La ordenacin o clasificacin de datos consiste en la disposicin de los mismos de acuerdo con algn valor o caracterstica. Por ejemplo, cada elemento de una agenda telefnica tiene un campo nombre, un campo direccin y un campo nmero telefnico. Por lo regular los datos en la agenda se encuentran organizados en un orden de la A la Z. De la misma forma un lista vector de datos se dice que esta ordenado de manera ascendente, si X [ i ] <= X [ i +1] y, por otro lado, se dice que esta ordenado de manera descendente s X [ i ] >= X [ i +1]. El proceso de ordenacin es uno de los mecanismos ms interesantes cuando llega el momento de mostrar que existen mltiples soluciones para un mismo problema, y que cada solucin algortmica tiene sus propias ventajas y desventajas.

Ordenamiento Interno

Los mtodos de ordenamiento interno trabajan en memoria principal y sus implementaciones son muy variadas, de manera que la eleccin del algoritmo adecuado debe realizarse con criterios de eficiencia (tiempo y ejecucin) y en funcin de la memoria disponible. Dividiremos los mtodos en dos grandes grupos:

Directos (burbuja, seleccin e insercin). Logartmicos (Shell sort, Merge sort, Heap sort, Quick sort, Radix). En el caso de listas pequeas, los mtodos directos se desempean de manera relativamente eficientes, ya que la codificacin del algoritmo correspondiente no es compleja. Su uso es muy frecuente. Sin embargo, en arreglos grandes las ordenaciones directas resultan ineficientes y se necesitara un mtodo logartmico para su solucin.

Bubble Sort (Ordenamiento Burbuja): Es el algoritmo de ordenamiento ms sencillo de todos, conocido tambin como mtodo del intercambio directo, el funcionamiento se basa en la revisin de cada elemento de la lista que va a ser ordenada con el elemento siguiente, intercambiando sus posiciones si estn en el orden equivocado, para esto se requieren varias revisiones hasta que ya no se necesiten ms intercambios, lo que indica que la lista ha sido ordenada. El origen del nombre de este algoritmo proviene de la forma con la que suben por la lista los elementos durante los intercambios, tal y como si fueran "burbujas", el algoritmo fundamental de este mtodo es la simple comparacin de elementos siendo as el ms fcil de implementar. Codificacin en C#:

Public int[] OrdenarBurbuja(int[]x) { int t= x.Length, temp; for(int i=1 ; i< t ; i++) { for(int j = t-1 ; j >= i; j--) { if(x[j] < x[j-1]) { temp= x[j]; x[j]= x[j-1]; x[j-1]= temp; } } } }

(Ordenamiento Rpido): Es el algoritmo de ordenamiento ms eficiente de todos, se basa en la tcnica de "Divide y Vencers", que permite en promedio, ordenar n elementos en un tiempo proporcional a n*log(n). Algoritmo Fundamental: Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote. Resituar los dems elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que l, y al otro los mayores. Los elementos iguales al pivote pueden ser colocados tanto a su derecha como a su izquierda, dependiendo de la implementacin deseada. En este momento, el pivote ocupa exactamente el lugar que le corresponder en la lista ordenada. La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha. Repetir este proceso de forma recursiva para cada sublista mientras stas contengan ms de un elemento. Una vez terminado este proceso todos los elementos estarn ordenados. 5. Codificacin en C#:

1. 2.

3. 4.

6. void Quicksort(int[] v, int prim, int ult) 7. { 8. if (prim < ult) 9. { 10. /*Selecciona 1 elemento del vector y coloca los menores 11. que l a su izq y los mayores a su derech*/ 12. int p = Pivote(v, prim, ult, ult); 13. 14. /* Repite el proceso para c/u de las particiones 15. generadas en el paso anterior */ 16. Quicksort(v, prim, p - 1); 17. Quicksort(v, p + 1, ult); 18. } 19. }

Ordenamiento Externo

La ordenacin de archivos se lleva a cabo cuando el volumen de los datos a tratar es demasiado grande y los mismos no caben en la memoria principal de la computadora. Al ocurrir esta situacin no pueden aplicarse los mtodos de ordenacin interna, de modo que debe pensarse en otro tipo de algoritmos para ordenar datos almacenados en archivos. Por ordenacin de archivos se entiende, entonces, la ordenacin o clasificacin de stos, ascendente o descendentemente, de acuerdo con un campo determinado al que se denominar campo clave. La principal desventaja de esta ordenacin es el tiempo de ejecucin, debido a las sucesivas operaciones de entrada y salida. Los dos mtodos de ordenacin externa ms importantes son los basados en la mezcla directa y en la mezcla equilibrada.

S-ar putea să vă placă și