[Conception et analyse d'algorithmes] Chapitre 1 Introduction

À propos de l'introduction

(Algorithme + structure de données) = programme

Turing-le père de l'informatique et de l'intelligence artificielle
Turing Award-le prix Nobel dans le monde informatique
Turing Test

Propriétés liées à l'algorithme: entrée, sortie, certitude, finitude

Algorithme: une méthode ou un processus pour résoudre un problème

Exactitude de l'algorithme

Un algorithme est correct s'il s'arrête finalement pour chaque entrée et produit la sortie correcte.

Le débogage du programme ne peut que prouver que le programme est erroné, pas qu'il est sans erreur!

Complexité de l'algorithme

Complexité temporelle

Le temps nécessaire à un algorithme pour s'exécuter sur un ordinateur abstrait
(le nombre d'opérations atomiques ou "étapes" nécessaires pour produire un résultat sur une entrée spécifique)
T = T (N, I) T = T (N, I)T=T ( N ,Je )

N: échelle du problème
I: entrée

1. La complexité temporelle dans le pire des cas 2. La complexité temporelle dans le
meilleur des cas 3. La complexité temporelle dans le
cas moyen

Jeton de complexité temporelle

f (N) et g (N) sont des fonctions positives définies sur l'ensemble des nombres positifs.
S'il y a un nombre normal CCC et entier naturelN 0 N_0N0

1, monde supérieur OOLES

f (N) f (N) f ( N ) est borné lorsque N est suffisamment grand: lorsqueN ≥ N 0 N \ geq N_0NN0Quand, f (N) ≤ C g (N) f (N) \ leq Cg (N)f ( N )C g ( N )g (N) g (N)g ( N ) estf (N) f (N)une borne supérieure de f ( N )

f(N)=O(g(N))

O (1) <O (log 2 n) <O (n) <O (nlog 2 n <O (n 2) <⋅ ⋅ ⋅ <O (2 n) <O (n!) <O (nn) O (1) <O ({log} _2n) <O (n) <O (n {log_2} n <O (n ^ 2) <··· <O (2 ^ n) <O (n!) <O (n ^ n) O ( 1 )<O ( l o g2n )<O ( n )<O ( n l o g2n<O ( n2 )<<O ( 2n )<O ( n ! )<O ( nn )

2. Limite inférieure Ω \ OmegaΩ

f (N) f (N) f ( N ) est borné lorsque N est suffisamment grand: lorsqueN ≥ N 0 N \ geq N_0NN0Lorsque, f (N) ≥ C g (N) f (N) \ geq Cg (N)f ( N )C g ( N )g (N) g (N)g ( N ) estf (N) f (N)une borne inférieure de f ( N )

f(N)=Ω(g(N))
Complexité polynomiale

Algorithme efficace, matériel d'empilage

Complexité exponentielle

Algorithmes inefficaces, le matériel d'empilage est inutile

3. Le même ordre θ \ thetaθ

f (N) f (N) f ( N ) équivaut àg (N) g (N)g ( N ) même ordre: si et seulement sif (N) = O (g (N)) f (N) = O (g (N))f ( N )=O ( g ( N ) )f (N) = Ω (g (N)) f (N) = \ Omega (g (N))f ( N )=Ω ( g ( N ) )

f(N)=θ(g(N))

Algorithme

O(f) + O(g) = O(max(f,g))
O(f) + O(g) = O(f + g)
O(f)O(g) = O(fg)g(N) = O(f(N)),则O(f) + O(g) = O(f)
O(Cf(N)) = O(f(N)),其中C是一个正的常数
f = O(f)

Complexité spatiale

La quantité d'espace de stockage requise par un algorithme pour produire des résultats pour une entrée spécifique
S = S (N, I) S = S (N, I)S=S ( N ,Je )

Je suppose que tu aimes

Origine blog.csdn.net/qq_44714521/article/details/107077150
conseillé
Classement