sábado, 7 de febrero de 2015
Definición de Método de Ordenamiento
En computación y matemáticas un algoritmo de ordenamiento es
unalgoritmo que pone elementos de una lista o un vector en una secuencia
dada por unarelación de orden, es decir, el resultado de salida ha de
ser una permutación —o reordenamiento— de la entrada que satisfaga la
relación de orden dada. Las relaciones de orden más usadas son el orden
numérico y el orden lexicográfico. Ordenamientos eficientes son
importantes para optimizar el uso de otros algoritmos (como los de
búsqueda y fusión) que requieren listas ordenadas para una ejecución
rápida. Los algoritmos de ordenamiento nos permiten, como su nombre lo
dice, ordenar. En tal caso como lo es la programación, nos servirán para
ordenar vectores o matrices con valores asignados aleatoriamente.
Tipos de Métodos de Ordenamiento.
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).
Internos:
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).
Internos:
- Inserción directa.
- Inserción binaria.
- Inserción directa.
- Selección directa.
- Burbuja.
- Shake.
- Intercambio directo.
- Shell.
- Inserción disminución incremental.
- Heap.
- Tournament.
- Ordenamiento de árbol.
- Quick sort.
- Sort particionado.
- Merge sort.
- Radix sort.
- Cálculo de dirección.
Externos:
- Straight merging.
- Natural merging.
- Balanced multiway merging.
- Polyphase sort.
- Distribution of initial runs.
El método de Ordenamiento por Selección
El método de ordenamiento por selección consiste en encontrar el
menor de todos los elementos del arreglo e intercambiarlo con el que
está en la primera posición. Luego el segundo más pequeño, y así
sucesivamente hasta ordenar todo el arreglo.
El ordenamiento por selección es un algoritmo de ordenamiento que requiere O
operaciones para ordenar una lista de n o elementos.

Su funcionamiento es el siguiente:
- Buscar el mínimo elemento de la lista
- Intercambiarlo con el primero
- Buscar el siguiente mínimo en el resto de la lista
- Intercambiarlo con el segundo
Y en general:
- Buscar el mínimo elemento entre una posición i y el final de la lista
- Intercambiar el mínimo con el elemento de la posición i
De esta manera se puede escribir el siguiente pseudocódigo para ordenar una lista de n elementos indexados desde el 1
Estructura del Metodo de Selección en Visual Basic
For i = 1 To n - 1
minimo = i
For j = i + 1 To n
If x(minimo) > x(j) Then
minimo = j
End If
Next j
temp = x(i)
x(i) = x(minimo)
x(minimo) = temp
Next i
Ejemplo y Código del Método de Selección
Este es un
programa de es uno de vectores que usa 10 números y los ordena
depende su valor por ejemplo si el "numero>0 o numero<0 o si
numero=0" con el método de seleccione marcando el resultado con
distintos colores.
Module Module1
'declaramos los vectores como enteros "INTEGER"
Module Module1
'declaramos los vectores como enteros "INTEGER"
Dim numeros(9) As Integer
Sub Main()
'mostramos un mensaje que nos pida los vectores con "WRITELINE"
'mostramos un mensaje que nos pida los vectores con "WRITELINE"
Console.WriteLine("Llenando vectores")
'Creamos una variable que represente
a los números a ingresar en este caso "contador" y
la declaramos como entero dentro de la etiqueta "For"
y decimos que contador = 0 asta 9.
For
contador As Integer
= 0 To 9 Step 1
' mostramos el
mensaje que diga que ingrese un numero de esta forma
se guardaran los números de 0 a 5
Console.WriteLine("Ingrese
numero{0}", contador)
numeros(contador)
= Console.ReadLine() => Guardamos los
números ingresados.
'Serramos el For con un next.
Next
'creamos un "console.clear()" para declarar los "public sub()"
'creamos un "console.clear()" para declarar los "public sub()"
Console.Clear()
metodoseleccion()
ColorearNumeros()
Console.ReadLine()
'Cerramos el "sub main()"
'Cerramos el "sub main()"
End Sub
'y abrimos un sub public() para clasificar los números por denominación >,<,= a 0
'y abrimos un sub public() para clasificar los números por denominación >,<,= a 0
Public Sub
ColorearNumeros()
'Para clasificar los números de (n>0)(n=0)(n<0) creamos condicionales pero antes escribimos un mensaje que nos poda los números con un "WRITELINE" y creamos un "FOR" para leer el contador ingresado.
'Para clasificar los números de (n>0)(n=0)(n<0) creamos condicionales pero antes escribimos un mensaje que nos poda los números con un "WRITELINE" y creamos un "FOR" para leer el contador ingresado.
Console.WriteLine("Colorear
numeros")
For contador As Integer = 0 To 9 Step 1
' Para crear una condicional bamos a utilizar un "IF" y colocamos si el (numero >0)
' Para crear una condicional bamos a utilizar un "IF" y colocamos si el (numero >0)
If
numeros(contador) > 0 Then
'Con esta la etiqueta console.foregroundcolor, vamos a pintar de color los números y en el "ConsoleColor" colocamos el color requerido, con el console.writeline seleccionara todos los números >0
'Con esta la etiqueta console.foregroundcolor, vamos a pintar de color los números y en el "ConsoleColor" colocamos el color requerido, con el console.writeline seleccionara todos los números >0
Console.ForegroundColor
= ConsoleColor.Green
console.writeline seleccionara todos los números >0
console.writeline seleccionara todos los números >0
Console.WriteLine("{0}", numeros(contador))
Si hay números que no cumplan con la condición anterior colocamos un "else if" y colocamos otro if para que selecciones los (numero =0)
Si hay números que no cumplan con la condición anterior colocamos un "else if" y colocamos otro if para que selecciones los (numero =0)
End
If
If
numeros(contador) = 0 Then
colocamos el color requerido para este tipo de valor numérico
colocamos el color requerido para este tipo de valor numérico
Console.ForegroundColor
= ConsoleColor.White
console.writeline seleccionara todos los números =0
console.writeline seleccionara todos los números =0
Console.WriteLine("{0}", numeros(contador))
End
If
If
numeros(contador) < 0 Then
Si hay números que no cumplan con la condición anterior colocamos un "else if" y colocamos otro if para que selecciones los (numero <0)
Si hay números que no cumplan con la condición anterior colocamos un "else if" y colocamos otro if para que selecciones los (numero <0)
Console.ForegroundColor
= ConsoleColor.Red
console.writeline seleccionara todos los números <0
console.writeline seleccionara todos los números <0
Console.WriteLine("{0}", numeros(contador))
cerramos las condiciones y el public sub()
cerramos las condiciones y el public sub()
End
If
Next
End Sub
Hora abrimos un public para colocar el proceso de ordenamiento de seleccion.
Hora abrimos un public para colocar el proceso de ordenamiento de seleccion.
Public Sub metodoseleccion()
Declaramos los datos que vamos a usar
Declaramos los datos que vamos a usar
Dim i,
j As Integer
Dim
minimo As Integer
Dim
temp As Double
y colocamos el código de selección de visual, ahora ya solo debemos llenar la formula con los datos del vector.
y colocamos el código de selección de visual, ahora ya solo debemos llenar la formula con los datos del vector.
For i =
0 To 9 - 1
minimo = i
For
j = i + 1 To 9
If numeros(minimo) > numeros(j) Then
minimo = j
End
If
Next j
temp = numeros(i)
numeros(i) = numeros(minimo)
numeros(minimo)
= temp
Next i
End Sub
End Module
Suscribirse a:
Entradas (Atom)