martes, 16 de noviembre de 2010

Metodos de Ordenamiento de vectores

Tipos de ordenamientos:


Los 2 tipos de ordenamientos que se pueden realizar son: los internos y los externos.


Los internos:

Son aquellos en los que los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).


Los externos:

Son aquellos en los que los valores a ordenar están en memoria secundaria (disco, cinta, cilindro magnético, etc), por lo que se asume que el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accesada (posición 1, posición 500, etc).

Eficiencia en tiempo de ejecución:

Una medida de eficiencias es:

Contar el # de comparaciones (C)

Contar el # de movimientos de items (M)

Estos están en función de el #(n) de items a ser ordenados.

Un "buen algoritmo" de ordenamiento requiere de un orden nlogn comparaciones.

La eficiencia de los algoritmo se mide por el número de comparaciones e intercambios que tienen que hacer, es decir, se toma n como el número de elementos que tiene el arreglo o vector a ordenar y se dice que un algoritmo realiza O(n2) comparaciones cuando compara n veces los n elementos, n x n = n2

Algoritmos de ordenamiento:

Internos:

1.

1. Inserción directa.

2. Inserción binaria.

2. Inserción directa.

1.

2. Selección directa.

3. Selección directa.

1. Burbuja.

2. Shake.

4. Intercambio directo.

1. Shell.

5. Inserción disminución incremental.

1. Heap.

2. Tournament.

6. Ordenamiento de árbol.

1.

2. Quick sort.

7. Sort particionado.

8. Merge sort.

9. Radix sort.

10. Cálculo de dirección.

Externos:

1. Straight merging.

2. Natural merging.

3. Balanced multiway merging.

4. Polyphase sort.

5. Distribution of initial runs.

VARIABLES LOCALES Y GLOBALES

VARIABLES LOCALES:

Este tipo de variable hace referencia a aqueya en la cual su ambito esta limirado o ristringio a la funcion deseada o asignada; por tanto la varible es local a esa funcion, por consiguiente esta variale solo se puede modificar o alterar en la seccion misma ya establecida. Practicamente este tipo de variables son aquellas que se declaran en la estructura de determinada función, gira, se modifica y es util con respecto a esa funcion , por consiguiente es local a esta.

Ejemplo:

la mejor forma para entenderlo es por medio de este:
si hay un tipo de variable Y que pertenece a un func1, lo que esta significando es que esta func1 es la dueña o propietaria de la variable y puede facilmente acceder a ella y modificarla puesto que es parte de su codigo estructural definido. Lo siguiente es comprender que si otro función necesita conocer el valor de la varible Y, es esta función la encargada de revelarlo

VARIABLES GLOBALES:

Son aquellas que estan definidas por fuera del cuerpo o estructura de la cualquier funcion, el ambito reconocido de este tipo de varibles es incluye todas las funciones del programa tratado, es decir que cualquier tipo de funcion tiene acceso a esta variable; bien sea para leer, escribir o modificarlas. Siendo posible referirse a la direccion de memoria que abarca en cualquier programa.
A diferencia de las varibles locales presenta algunas desventajas como:
  1. Presenta menor legibilidad.
  2. Hace que en ciertas ocasiones el programa sea limitado y que solo funcione bajo ciertas indicaciones o en determinados casos.
  3. Ataca y atenta contra la modularidad.

Finamalmente cabe analizar que en ciertos programas el usuario puede encontra variables de los 2 tipos mencionados que poseen el mismo nombre, pero son las variables locales y los conocido como argumentos formales los que prevalecen y tiene prioridad sobre los globales.