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.



miércoles, 8 de septiembre de 2010

Arreglos unidimensionales y multidimensionales

Los arreglos son una colección de variables del mismo tipo que se referencian utilizando un nombre común. Un arreglo consta de posiciones de memoria contigua. La dirección más baja corresponde al primer elemento y la más alta al último. Un arreglo puede tener una o varias dimensiones. Para acceder a un elemento en particular de un arreglo se usa un índice.

El formato para declarar un arreglo unidimensional es:

tipo nombre_arr [ tamaño ]

Por ejemplo, para declarar un arreglo de enteros llamado listanum con diez elementos se hace de la siguiente forma:

int listanum[10];

En C, todos los arreglos usan cero como índice para el primer elemento. Por tanto, el ejemplo anterior declara un arreglo de enteros con diez elementos desde listanum[0] hasta listanum[9].

La forma como pueden ser accesados los elementos de un arreglo, es de la siguiente forma:

listanum[2] = 15; /* Asigna 15 al 3er elemento del arreglo listanum*/

num = listanum[2]; /* Asigna el contenido del 3er elemento a la variable num */

El lenguaje C no realiza comprobación de contornos en los arreglos. En el caso de que sobrepase el final durante una operación de asignación, entonces se asignarán valores a otra variable o a un trozo del código, esto es, si se dimensiona un arreglo de tamaño N, se puede referenciar el arreglo por encima de N sin provocar ningún mensaje de error en tiempo de compilación o ejecución, incluso aunque probablemente se provoque el fallo del programa. Como programador se es responsable de asegurar que todos los arreglos sean lo suficientemente grandes para guardar lo que pondrá en ellos el programa.

C permite arreglos con más de una dimensión , el formato general es:

tipo nombre_arr [ tam1 ][ tam2 ] … [ tamN];

Por ejemplo un arreglo de enteros bidimensionales se escribirá como:

int tabladenums[50][50];

Observar que para declarar cada dimensión lleva sus propios paréntesis cuadrados.

Para acceder los elementos se procede de forma similar al ejemplo del arreglo unidimensional, esto es,

tabladenums[2][3] = 15; /* Asigna 15 al elemento de la 3ª fila y la 4ª columna*/

num = tabladenums[25][16];

A continuación se muestra un ejemplo que asigna al primer elemento de un arreglo bidimensional cero, al siguiente 1, y así sucesivamente.

main()

{

    int t,i,num[3][4];



for(t=0; t<3; ++t)

for(i=0; i<4; ++i)

num[t][i]=(t*4)+i*1;



for(t=0; t<3; ++t)

{

for(i=0; i<4; ++i)

printf(“num[%d][%d]=%d “, t,i,num[t][i]);

printf(“\n”);

}

}

En C se permite la inicialización de arreglos, debiendo seguir el siguiente formato:

tipo nombre_arr[ tam1 ][ tam2 ] … [ tamN] = {lista-valores};

Por ejemplo:

int i[10] = {1,2,3,4,5,6,7,8,9,10};

int num[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

martes, 27 de julio de 2010

while (Instrucción)

Ejecuta una instrucción hasta que la condición especificada sea igual a False.

while (expression)       statement 
Argumentos

expression

Requerido. Expresión booleana comprobada antes de cada iteración del bucle. Si al evaluarexpression devuelve True, el bucle se ejecuta. Si al evaluar expression devuelve False, el bucle termina.

statement

Requerido. Instrucción que se va a ejecutar si el argumento expression es True. Puede ser una instrucción compuesta.

Instrucción For...Next

Repite un grupo de instrucciones un número de veces especificado.

For counter [ As datatype ] = start To end [ Step step ]     [ statements ]     [ Exit For ]     [ statements ] Next [ counter ] 
Partes

counter

Se requiere en la instrucción For. Variable numérica. Variable de control para el bucle.

datatype

Obligatorio, a menos que counter ya se haya declarado. Tipo de datos de counter.

start

Obligatorio. Expresión numérica. Valor inicial de counter.

end

Obligatorio. Expresión numérica. Valor final de counter.

step

Opcional. Expresión numérica. Cantidad en la que se incrementa counter cada vez que se recorre el bucle.

statements

Opcional. Una o más instrucciones entre For y Next que se ejecutan un número especificado de veces.

Exit For

Opcional. Transfiere el control fuera del bucle For.

Next

Obligatorio. Termina la definición del bucle For.

lunes, 17 de mayo de 2010

Instrucción If y else en Visual Basic

Las instrucciones o estructuras de control, permiten tomar decisiones y realizar un proceso en repetidas veces. Son las denominadas bifurcaciones y bucles. Estas estructuras son muy importantes puesto que son las encargadas de controlar el flujo de un programa según los requerimientos del mismo. En Visual Basic se dispone de las siguientes:

Instrucción IF....THEN.....ELSE....END IF

Permite ejecutar condicionalmente una o más sentencias. Su representación es así:
Sentencias de control. Sentencia If, Then, Else, End If

En la representación anterior, si se cumple la primera condición, es decir condicion1 = True, entonces el programa continua su ejecución por el Grupo1 de Sentencias, si no se cumple, pasa a evaluar condicion2, y si es cierta se ejecuta el Grupo 2 de Sentencias y si es falsa evalúa condicion3 y así se continúa hasta el encontrar un Else If (puede haber tantos como se precisen) que contenga una condición verdadera para ejecutar su grupo de sentencias. Si ninguna condición de las evaluadas es cierta, se ejecuta el Grupo de Sentencias de la cláusula Else.

martes, 13 de abril de 2010

Tipos de datos y variables en Visual Basic

Tipos de datos:

Existen diferentes tipos de datos, continuación mostraré un resumen de ellos.


Variable
En una Instrucción Dim (Visual Basic)
Dim amount As Double
Static yourName As String
Public billsPaid As Decimal = 0

Se puede observar como utilizar cada uno de los tipos de variable:
  • Byte: Almacena pequeños enteros positivos menores que o iguales a 255
  • Boolean: Contiene solo uno de dos valores y pueden leerse o establecerse mediante el uso de una palabra clave reservada de Visual BASIC True y False.
  • Integer: Almacena enteros entre –2147483648 y 2147483647
  • Long: Almacena enteros entre -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
  • Single (Precision): Almacena reales entre -3,40E38 y 3,40E38
  • Double(Precision): Almacena reales entre -1,8E308 y 1,8E308
  • Short: Almacena enteros entre -32.768 y 32.767
  • Date: Almacena cualquier fecha literal reconocible (en Ingles)
  • Object: Maneja cualquier objeto producido por una aplicación
  • String: Almacena cadenas de caracteres

¿Y cómo declaramos una variable en Visual Basic ?

Una variable se declara utilizando la palabra DIM y luego quedaria de la siguiente manera:

Dim nombre_de_la_variable AS Tipo

sin dejar espacios y poniendo una coma(,), entre variable y variable.