Conception et analyse des algorithmes: Présentation

● algorithmes et procédures

L' algorithme des moyens pour résoudre le problème d' un procédé ou d' un processus .
L' algorithme est une séquence finie de plusieurs instructions satisfont à des propriétés:
(1) d' entrée : nombre de OUI fourni extérieurement en entrée de l'algorithme.
(2) Sortie : au moins un algorithme produit en tant que grandeur de sortie.
(3) L' incertitude : chaque instruction est composée de l'algorithme claires , sans ambiguïté S ».
(4) Limitation : algorithme chaque instruction fréquence d'exécution est limitée à chaque exécution instruction temps est limitée à.

Programme est l'algorithme en utilisant un langage de programmation mise en œuvre spécifique . Programme peut ne pas satisfait de la nature de l'algorithme, comme le système d'exploitation .

● Étape algorithme de conception

Comprendre le problème : Avant de concevoir un algorithme, nous devons faire première chose est de comprendre les questions présentées. En même temps, doivent être traités algorithme strictement défini gamme d'instance est très important. Un algorithme approprié doit non seulement être en mesure de traiter la plupart des cas, et devrait être en mesure de gérer correctement toutes juridique entrée.
La compréhension de la performance de l' équipement informatique : la plupart des algorithmes utilisés aujourd'hui fonctionne toujours sur le von Neumann ordinateur. Sa première machine à accès aléatoire vision est: une commande en cours d' exécution par de un, chaque fois que l'étape de fonctionnement, appelé algorithme séquentiel . Certains ordinateurs plus récents peuvent effectuer plusieurs opérations en même temps, à savoir, calcul parallèle .
Entre l'exacte et approximative de choisir : Solution appelé précise algorithme exact , appelé la solution approchée algorithme d'approximation . Vous ne pouvez pas obtenir la solution exacte en raison de certains problèmes de complexité inhérente , en utilisant l' algorithme exact connu pour résoudre ce problème peut être trop lent.
La détermination de structures de données appropriées : algorithmes et structures de données, l' ordinateur programmation de base importante . Algorithmes + Structures de données = Programmes

● algorithme d'analyse d'index

Pour tout algorithme ou une solution, il y a les deux questions suivantes:
(1) le problème peut être résolu?
(2) pour résoudre le problème, d' accord?

L' efficacité n'est pas l' analyse des algorithmes dans le seul but de. Bien que l'objectif de l' algorithme est la vitesse , mais l'algorithme doit d' abord corriger l' existence significative. Concevoir des algorithmes , ou lorsque plusieurs algorithmes comparent le temps, il est nécessaire d'analyser leur exactitude et l' efficacité du temps . Ce type d'algorithme disséqué pour obtenir leur précision et l' efficacité du temps de l'opération est l' analyse de l' algorithme . Si les deux algorithmes efficacité du temps , nous devons mettre en œuvre l'algorithme utilisé l' espace en comparant l' espace en utilisant moins est mieux.
Ainsi, l'algorithme d'analyse peut être divisé en les trois aspects suivants:
(1) l' exactitude de l'
analyse de l' efficacité temporelle (2)
(3) Analyse des caractéristiques temporelles

= Algorithmiques ressources informatiques de l' algorithme de complexité requis
complexité temporelle de T (n) , la complexité spatiale de S (n) .
n est la taille du problème (de la taille de l' entrée).

complexité temporelle de l'algorithme a l'analyse suivante:
(1) le pire des cas la complexité du temps
Tmax (n) = max {T (I) | taille (I) = n}
(2) le meilleur cas la complexité temporelle de la résistance
de Tmin (n) = min {T (I) | taille (I) = n}
(. 3) cas en moyenne complexité de temps à
Tavg (n) =Insérer ici l'image Description
où I est la taille du problème n exemple , p (I) exemple , je comparaissant probabilité .

Si T (n) → ∞, comme n → ∞,
ont (T (n) - t ( n)) / T (n) → 0, comme n → ∞,
appelé t (n) est T (n) le comportement asymptotique , l'algorithme de la complexité asymptotique .
Mathématiquement, t (n) est T (n) est l'expression asymptotique est T (n) principal élément gauche termes d'ordre inférieur sont omis . Il (n) plus simple que T.

Analyse asymptotique du symbole : Dans la discussion qui suit, pour tout n, f (n) ≥ 0 , g (n) ≥ 0.
(1) lié au symbole O asymptotiquement
O (g (n)) = {f (n) | , et la présence de c un nombre normal pour tout n ≥ n0 n0 tel qu'il existe: 0 ≤ F (n) ≤ CG (n)}
( 2) la notation asymptotique limite inférieure [Omega]
[Omega] (G (n)) = {F (n) |, et la présence de c un nombre normal pour tout n ≥ n0 n0 tel qu'il existe: 0 ≤ CG (n) ≤ F (n)}
(3) . non lié de serrage marque O
O (G (n)) = {F (n) | pour tout c nombre normal> 0, et un nombre positif n0> 0 tel que pour tout n ≥ n0 a: 0 ≤ f (n) < cg (n)}
est équivalente à f (n) / g (n ) → 0, lorsque n → ∞.
(4) notation non étanche limite inférieure [omega]
[omega] (G (n)) = {F (n) | pour tout c nombre normal> 0, il y a un nombre positif et le n0> 0 tel que ≥ n0 ont tous n: 0 ≤ cg (n ) <f (n)}
est équivalente à f (n) / g (n ) → ∞, comme n → ∞.
f (n) ∈ ω (g (n)) est équivalent à G (n) ∈ O (F (n))
(5). symbole immédiatement bornée asymptotiquement [Theta]
[Theta] (G (n)) = {F (n) | présence de c1 nombre normal, c2, et n0 n0 ≥ faire toutes les n: C1G (n) ≤ f (n) ≤ c2g (n)}

Pour l'algorithme en fonction du temps f (n) , si f (n) et g (n) est le même ordre de grandeur (du même ordre), disponible f (n) = O (g (n)) exprimé sous la forme. Il a ladite formule est la complexité temporelle de l'algorithme , aussi connu comme la complexité temporelle de l'algorithme est O (G (n)) .
Couramment utilisés complexité temporelle ont la relation suivante:
O (. 1) ≤ O (log2n) ≤ O (n) ≤ O (n * log2n) ≤ O (n - 2 ) ≤ O (n . 3 ) ≤ ... ≤ O (n- K ) ≤ O (2 n- ) <O (n!)

● algorithme de classification

Algorithme plus ou moins divisée en trois catégories:
(1) limitées, les algorithmes déterministes
de tels algorithmes pour une période limitée de temps se termine . Ils peuvent prendre beaucoup de temps pour effectuer des tâches assignées, mais prendront fin dans un certain laps de temps. Ces algorithmes souvent le résultat dépend des valeurs d'entrée .
(2) un nombre limité, l' algorithme non déterministe
de ces algorithmes dans un temps limité se termine . Cependant, pour un (ou une) de la valeur numérique donnée, et le résultat de l'algorithme est pas unique ou déterminé .
(3) algorithme infini
se réfère à ceux car il n'y a pas de condition de fin est définie , ou des conditions définies pas satisfaites par les données d' entrée algorithme sans mettre fin à l'opération. Typiquement, un algorithme infini est dû à l'incapacité de déterminer la condition de fin est définie.

algorithme classique :
1. Recherche Exhaustive
2. Algorithme itératives
3. algorithme récursif
4. algorithme récursif
5. Diviser pour mieux régner algorithme
6. algorithme glouton
7. algorithme de programmation dynamique
8. Retour en arrière
9. Direction et Bound

Publié 39 articles originaux · louange won 4 · Vues 2052

Je suppose que tu aimes

Origine blog.csdn.net/weixin_44712386/article/details/105008543
conseillé
Classement