jueves, 9 de marzo de 2017

Algoritmo de ordenamiento

Algoritmo de ordenamiento

En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relació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. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.


Estabilidad

Los algoritmos de ordenamiento estable mantienen un relativo preorden total. Esto significa que un algoritmo es estable solo cuando hay dos registros R y S con la misma clave y con R apareciendo antes que S en la lista original.
Cuando elementos iguales (indistinguibles entre sí), como números enteros, o más generalmente, cualquier tipo de dato en donde el elemento entero es la clave, la estabilidad no es un problema. De todas formas, se asume que los siguientes pares de números están por ser ordenados por su primer componente:
(4, 1)  (3, 7)  (3, 1)  (5, 6)
En este caso, dos resultados diferentes son posibles, uno de los cuales mantiene un orden relativo de registros con claves iguales, y una en la que no:
(3, 7)  (3, 1)  (4, 1)  (5, 6)   (orden mantenido)
(3, 1)  (3, 7)  (4, 1)  (5, 6)   (orden cambiado)
Los algoritmos de ordenamiento inestable pueden cambiar el orden relativo de registros con claves iguales, pero los algoritmos estables nunca lo hacen. Los algoritmos inestables pueden ser implementados especialmente para ser estables. Una forma de hacerlo es extender artificialmente el cotejamiento de claves, para que las comparaciones entre dos objetos con claves iguales sean decididas usando el orden de las entradas original. Recordar este orden entre dos objetos con claves iguales es una solución poco práctica, ya que generalmente acarrea tener almacenamiento adicional.
Ordenar según una clave primaria, secundaria, terciara, etc., puede ser realizado utilizando cualquier método de ordenamiento, tomando todas las claves en consideración (en otras palabras, usando una sola clave compuesta). Si un método de ordenamiento es estable, es posible ordenar múltiples ítems, cada vez con una clave distinta. En este caso, las claves necesitan estar aplicadas en orden de aumentar la prioridad.
Ejemplo: ordenar pares de números, usando ambos valores
(4, 1)  (3, 7)  (3, 1)  (4, 6) (original)
(4, 1)  (3, 1)  (4, 6)  (3, 7) (después de ser ordenado por el segundo valor)
(3, 1)  (3, 7)  (4, 1)  (4, 6) (después de ser ordenado por el primer valor)
Por otro lado:
(3, 7)  (3, 1)  (4, 1)  (4, 6) (después de ser ordenado por el primer valor)
(3, 1)  (4, 1)  (4, 6)  (3, 7) (después de ser ordenando por el segundo valor,
                                 el orden por el primer valor es perturbado)

Lista de algoritmos de ordenamiento

Algunos algoritmos de ordenamiento agrupados según estabilidad tomando en cuenta la complejidad computacional.
Estables
Nombre traducidoNombre originalComplejidadMemoriaMétodo
Ordenamiento de burbujaBubblesortO(n²)O(1)Intercambio
Ordenamiento de burbuja bidireccionalCocktail sortO(n²)O(1)Intercambio
Ordenamiento por inserciónInsertion sortO(n²)("(en el peor de los casos)")O(1)Inserción
Ordenamiento por casillerosBucket sortO(n)O(n)No comparativo
Ordenamiento por cuentasCounting sortO(n+k)O(n+k)No comparativo
Ordenamiento por mezclaMerge sortO(n log n)O(n)Mezcla
Ordenamiento con árbol binarioBinary tree sortO(n log n)O(n)Inserción
Pigeonhole sortO(n+k)O(k)
Ordenamiento RadixRadix sortO(nk)O(n)No comparativo
Distribution sortO(n³) versión recursivaO(n²)
Gnome sortO(n²)O(1)
Inestables
Nombre traducidoNombre originalComplejidadMemoriaMétodo
Ordenamiento ShellShell sortO(n1.25)O(1)Inserción
Comb sortO(n log n)O(1)Intercambio
Ordenamiento por selecciónSelection sortO(n²)O(1)Selección
Ordenamiento por montículosHeapsortO(n log n)O(1)Selección
SmoothsortO(n log n)O(1)Selección
Ordenamiento rápidoQuicksortPromedio: O(n log n), peor caso: O(n²)O(log n)Partición
Several Unique SortPromedio: O(n u), peor caso: O(n²); u=n; u = número único de registros
Cuestionables, imprácticos
Nombre traducidoNombre originalComplejidadMemoriaMétodo
BogosortO(n × n!), peor: no termina
Pancake sortingO(n), excepto en máquinas de Von Neumann
Ordenamiento AleatorioRandomsortPromedio: O(n!) Peor: No termina


GLOSARIO

FUNCIONES DE PSeInt

* Escribir lista_de_expresiones;  La instrucción Escribir permite mostrar valores en pantalla.

* Leer lista_de_variables; La instrucción Leer permite ingresar información desde el teclado. 

* variable<-expresión; La instrucción asignar permite leer y guardar un dato.

La secuencia de instrucciones ejecutadas por la instrucción Si-Entonces-Sino depende del valor de una condición lógica.
* Si expresion_logica Entonces 
 acciones_por_verdadero
Sino
 acciones_por_falso
Fin Si

La secuencia de instrucciones ejecutada por una instrucción Segun depende del valor de una variable numérica. nos permite crear un menu de opciones. 
* Segun variable_numerica Hacer
  opcion_1:
   secuencia_de_acciones_1
  opcion_2:
   secuencia_de_acciones_2
  opcion_3:
   secuencia_de_acciones_3
  De Otro Modo:
   secuencia_de_acciones_dom
 Fin Segun

La instrucción Mientras ejecuta una secuencia de instrucciones mientras una condición sea verdadera. 
* Mientras expresion_logica Hacer
  secuencia_de_acciones
 Fin Mientras

La instrucción Repetir-Hasta Que ejecuta una secuencia de instrucciones hasta que la condición sea verdadera.
* Repetir
  secuencia_de_acciones
 Hasta Que expresion_logica

La instrucción Para ejecuta una secuencia de instrucciones un número determinado de veces. 
* Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer
  secuencia_de_acciones

 Fin Para

ARREGLOS

ARREGLOS




Grupo o colección finita, homogénea y ordenada de elementos. Un arreglo es un conjunto de datos o una estructura de datos homogéneos que se encuentran ubicados en forma consecutiva en la memoria RAM (sirve para almacenar datos en forma temporal).




PRUEBA ESCRITORIO


miércoles, 8 de marzo de 2017

divulgacion tegnologica

02/03/2017 divulgacion tegnologica



Pues dudas quedaron, porque nos dieron un tema muy diferente a lo que nos tenían a dar
pero en si pues de aprender aprendí mucho ya que la señora nos enseño las metodologías togaf
  1. buscar objetivos
  2. búsqueda de procesos
  3. informacionaplicacion
  4. infraestructura de la aplicación
incidente

  1. problema que le precente un cliente
  2. problema
algo que vienen sucediendo continuamente en un problema












problema y pregunta problema APLICACIÓN PARA LAS ELECCIONES ELECTORALES EN COLOMBIA.


DEFINICIÓN DE PROBLEMA Y PREGUNTA PROBLEMA ACERCA DE LA APLICACIÓN PARA LAS ELECCIONES ELECTORALES EN COLOMBIA.


PROBLEMA: implementación de una aplicación para las elecciones electorales en Colombia.
El problema básicamente es que va a ser muy complicado llegar a montar esta aplicación ya que los políticos ya sea el congreso el presidente no estarán dispuesto a que se maneje toda esa información por una aplicación viéndolo del punto de vista que se puede prestar para muchos problemas además seriamos el primer país en implementar este sistema.

Paso 1
Determinación de elementos para mi pregunta
Actor: implementación de una aplicación para las elecciones electorales en Colombia.
Causa: facilita el conteo de los votos ya que si un mecanismo computarizado lo hace será más seguro y rápido
Efecto: genera controversias en las personas ya que el interne esta tan avanzado que se puede presentar un error en el sistema y puede conformar un conflicto muy grande si llega a fallar.

Paso 2
¿Reflexionar acerca de lo que queremos hacer?  
¿De esto quiero hablar? ¿Así quiero que se vea? ¿Esto voy a defender? ¿Esto voy a defender?

Paso 3
Viene la pregunta problema

¿En qué medida o que tanto nuestra aplicación puede ayudar a facilitar y ahorrar dinero  en las elecciones populares en Colombia? ¿Qué problemas traería si llegara a fallar o en su vez a ser hackear?

martes, 7 de marzo de 2017

ARREGLOS EN PROGRAMACION



definido de arreglo


Definición

Un arreglo puede definirse como un grupo o una colección finita, homogénea y ordenada de elementos. Los arreglos pueden ser de los siguientes tipos:
  • De una dimensión.
  • De dos dimensiones.
  • De tres o más dimensiones.

Tipos de arreglos

  • Arreglos unidimensionales.
  • Arreglos multidimensionales.
  • Arreglo con múltiple subíndices.