Diseño y análisis de algoritmos: Introducción

● algoritmos y procedimientos

Algoritmo significa para resolver el problema de un método o un proceso .
Algoritmo es una secuencia finita de varias instrucciones satisfacen propiedades:
(1) Entrada : cantidad SÍ suministrado externamente como entrada al algoritmo.
(2) Salida : al menos un algoritmo produce como una cantidad de salida.
(3) Incertidumbre : cada instrucción se compone de los algoritmo claras , inequívocas 's.
(4) Limitación : algoritmo de cada instrucción frecuencia de ejecución se limita a, cada ejecución de la instrucción de tiempo está limitado a.

Programa es el algoritmo utilizando un lenguaje de programación de aplicación específica . Programa puede no está satisfecho con la naturaleza del algoritmo, tales como el sistema operativo .

● algoritmo de diseño de la Etapa

Entender el problema : Antes de diseñar un algoritmo, que tenemos que hacer primero es entender completamente los problemas presentados. Al mismo tiempo, deben abordarse algoritmo definido estrictamente gama ejemplo, es muy importante. Un algoritmo adecuado no sólo debe ser capaz de manejar la mayoría de los casos, y debe ser capaz de manejar correctamente todos legal de entrada.
La comprensión del funcionamiento del equipo informático : la mayoría de los algoritmos utilizados en la actualidad aún se ejecuta en el Von Neumann ordenador. Su principal máquina de acceso aleatorio visión es: ejecutando un comando por uno, cada vez que el paso de operación, llamado algoritmo secuencial . Algunos equipos más nuevos pueden realizar varias operaciones al mismo tiempo, es decir, la computación paralela .
Entre la exacta y aproximada para elegir : solución llamada precisa algoritmo exacto , llamado el aproximado solución algoritmo de aproximación . No se puede obtener la solución exacta o debido a algunos problemas de complejidad inherente , utilizando conocido algoritmo exacto para resolver este problema puede ser inaceptablemente lenta.
La determinación de las estructuras de datos adecuadas : algoritmos y estructuras de datos, equipo de programación de base importante . Estructuras de Datos = + algoritmos Programas

● algoritmo de análisis de índice

Para cualquier algoritmo o una solución, se encuentran las siguientes dos preguntas:
(1) el problema se puede resolver?
(2) para resolver el problema, ¿de acuerdo?

Eficiencia no es el análisis de algoritmos para el único propósito de. Aunque el objetivo algoritmo es la velocidad , pero el algoritmo debe primero corregir existencia significativa. algoritmos de diseño , o cuando hay varios algoritmos comparan el tiempo, es necesario analizar su exactitud y eficiencia del tiempo . Este tipo de algoritmo de disecó para obtener su eficiencia precisión y el tiempo de la operación es el análisis de algoritmo . Si los dos algoritmos eficiencia del tiempo , debemos poner en práctica el algoritmo utilizado el espacio mediante la comparación de espacio utilizando menos es mejor.
Por lo tanto, el algoritmo de análisis se puede dividir en los siguientes tres aspectos:
(1) la corrección de
análisis temporal eficiencia (2)
(3) Análisis de las características temporales

= Algorítmicos algoritmo de complejidad recursos informáticos necesarios
tiempo complejidad de T (N-) ; complejidad espacio de S (n-) .
Donde n es el tamaño del problema (tamaño de la entrada).

complejidad temporal del algoritmo tiene el siguiente análisis:
(1) el caso peor complejidad del tiempo en
Tmáx de (n-) = max {T (I) | tamaño (I) = n}
(2) el mejor de los casos el tiempo la complejidad de la resistencia
de Tmin (n) = min {T (I) | tamaño (I) = n}
(. 3) promedio caso complejidad de tiempo en
PromT (n) =Aquí Insertar imagen Descripción
donde I es el tamaño del problema n de ejemplo , p (I) ejemplo que aparece probabilidad .

Si por T (n) → ∞, como n → ∞;
tener (T (n) - t ( n)) / T (n) → 0, como n → ∞;
llamado t (n) es T (n) el comportamiento asintótico , el algoritmo de la complejidad asintótica .
Matemáticamente, t (n) es T (n) es la expresión asintótica es T (n) elemento primario dejó términos de orden inferior se omiten . Se (n) más simple que T.

análisis asintótico del símbolo : En la siguiente discusión, para todo n, f (n) ≥ 0 , g (n) ≥ 0.
(1) unidos el símbolo O asintóticamente
O (g (n)) = {f (n) | , y la presencia de número normal c para todo n ≥ n0 n0 tal que hay: 0 ≤ F (n-) ≤ CG (n-)}
( 2) la asintótica inferior notación límite [Omega]
[Omega] (G (n-)) = {F (n-) |, y la presencia de número normal c para todo n ≥ n0 n0 tal que hay: 0 ≤ CG (n-) ≤ F (n-)}
. (3) no unido de apriete marca O
O (G (n-)) = {F (n-) | para cualquier número normal c> 0, y un número positivo n0> 0 tal que para todo n≥ n0 tiene: 0 ≤ f (n) < cg (n)}
es equivalente a f (n) / g (n ) → 0, como n → ∞.
(4) no ajustado límite inferior notación [omega]
[omega] (G (n-)) = {F (n-) | para cualquier número normal c> 0, hay un número positivo y la n0> 0 tal que ≥ n0 tienen todo n: 0 ≤ cg (n ) <f (n)}
es equivalente a f (n) / g (n ) → ∞, como n → ∞.
f (n) ∈ ω (g (n)) es equivalente a G (n-) ∈ O (F (n-))
(5). símbolo inmediatamente asintóticamente delimitada [Theta]
[Theta] (G (n-)) = {F (n-) | presencia de c1 número normal, c2, y n0 n0 ≥ tienen todas tales n: C1G (n) ≤ f (n) ≤ c2g (n)}

Para el algoritmo en función del tiempo f (n) , si f (n) y g (n) es la misma magnitud (el mismo orden), disponible f (n) = O (g (n)) expresada en el formulario. Dijo fórmula es la complejidad de tiempo del algoritmo , también conocida como la complejidad de tiempo del algoritmo es O (G (n-)) .
USADOS complejidad de tiempo tiene la siguiente relación:
O (. 1) ≤ O (log2N) ≤ O (n-) ≤ O (n- * log2N) ≤ O (n- 2 ) ≤ O (n- . 3 ) ≤ ... ≤ O (n- K ) ≤ O (2 n- ) <O (n-!)

● clasificación algoritmo

Algoritmo dividirse aproximadamente en tres categorías:
(1) limitados, algoritmos determinísticos
tales algoritmos por un período limitado de tiempo termina . Se puede tomar un largo tiempo para realizar las tareas asignadas, pero se terminará dentro de un cierto período de tiempo. Tales algoritmos a menudo el resultado depende de los valores de entrada .
(2) un limitado, el algoritmo no determinista
tales algoritmos en un tiempo limitado termina . Sin embargo, para una (o algunas) del valor numérico dado, y el resultado del algoritmo no es único o determinado .
(3) algoritmo infinito
se refiere a aquellos porque no hay condición de terminación se define , o condiciones definidas no satisfechas por los datos de entrada algoritmo sin terminar la operación. Típicamente, un algoritmo infinito es debido a la falla para determinar la condición de terminación se define.

algoritmo clásico :
1. búsqueda exhaustiva
2. Iterativo algoritmo
3. algoritmo recursivo
4. algoritmo recursivo
5. Algoritmo divide y vencerás
6. algoritmo voraz
7. algoritmo de programación dinámica
8. El dar marcha atrás
9. Poder y el algoritmo de salto

Publicado 39 artículos originales · ganado elogios 4 · Vistas 2052

Supongo que te gusta

Origin blog.csdn.net/weixin_44712386/article/details/105008543
Recomendado
Clasificación