Skip to content
Snippets Groups Projects
Verified Commit b4e32670 authored by orestis.malaspin's avatar orestis.malaspin
Browse files

updated dates

parent 8b3952e9
Branches
Tags
No related merge requests found
...@@ -143,10 +143,12 @@ int fib_imp(int n) { ...@@ -143,10 +143,12 @@ int fib_imp(int n) {
## But: Calculer $x^n$ ## But: Calculer $x^n$
* Algorithme naîf et impératif * Quel est l'algorithmie le plus simple que vous pouvez imaginer?
. . .
```C ```C
int pow(x, n) { int pow(int x, int n) {
if (0 == n) { if (0 == n) {
return 1; return 1;
} }
...@@ -157,13 +159,13 @@ int fib_imp(int n) { ...@@ -157,13 +159,13 @@ int fib_imp(int n) {
} }
``` ```
. . .
* Complexité? Combien de multiplication en fonction de `n`? * Complexité? Combien de multiplication en fonction de `n`?
# Exponentiation rapide ou indienne (2/4) # Exponentiation rapide ou indienne (2/4)
* Algorithme naïf et récursif * Proposez un algorithme naïf et récursif
. . .
```C ```C
int pow(x, n) { int pow(x, n) {
...@@ -309,8 +311,7 @@ bool is_present(int n, int tab[], int elem) { ...@@ -309,8 +311,7 @@ bool is_present(int n, int tab[], int elem) {
``` ```
* Dans le **meilleurs des cas** il faut `1` comparaison. * Dans le **meilleurs des cas** il faut `1` comparaison.
* Dans le **pire des cas** (élément absent p.ex.) il faut `n` * Dans le **pire des cas** (élément absent p.ex.) il faut `n` comparaisons.
comparaisons.
. . . . . .
...@@ -343,8 +344,7 @@ bool is_present_binary_search(int n, int tab[], int elem) { ...@@ -343,8 +344,7 @@ bool is_present_binary_search(int n, int tab[], int elem) {
## Recherche dichotomique ## Recherche dichotomique
![Source: ![Source: [Wikipédia](https://upload.wikimedia.org/wikipedia/commons/a/aa/Binary_search_complexity.svg)](figs/Binary_search_complexity.svg){width=80%}
[Wikipédia](https://upload.wikimedia.org/wikipedia/commons/a/aa/Binary_search_complexity.svg)](figs/Binary_search_complexity.svg){width=80%}
. . . . . .
...@@ -362,20 +362,17 @@ bool is_present_binary_search(int n, int tab[], int elem) { ...@@ -362,20 +362,17 @@ bool is_present_binary_search(int n, int tab[], int elem) {
## Constante de proportionnalité ## Constante de proportionnalité
* Pour la recherche linéaire ou dichotomique, on a des algorithmes qui sont * Pour la recherche linéaire ou dichotomique, on a des algorithmes qui sont $\sim N$ ou $\sim \log_2(N)$
$\sim N$ ou $\sim \log_2(N)$
* Qu'est-ce que cela veut dire? * Qu'est-ce que cela veut dire?
. . . . . .
* Temps de calcul est $t=C\cdot N$ (où $C$ est le temps pris pour une * Temps de calcul est $t=C\cdot N$ (où $C$ est le temps pris pour une comparaisons sur une machine/compilateur donné)
comparaisons sur une machine/compilateur donné)
* La complexité ne dépend pas de $C$. * La complexité ne dépend pas de $C$.
## Le $\mathcal{O}$ de Leibnitz ## Le $\mathcal{O}$ de Leibnitz
* Pour noter la complexité d'un algorithme on utilise le symbole * Pour noter la complexité d'un algorithme on utilise le symbole $\mathcal{O}$ (ou "grand Ô de").
$\mathcal{O}$ (ou "grand Ô de").
* Les complexités les plus couramment rencontrées sont * Les complexités les plus couramment rencontrées sont
. . . . . .
...@@ -482,8 +479,7 @@ $$ ...@@ -482,8 +479,7 @@ $$
## Finalement ## Finalement
$$ $$
\mathcal{O}(N^2\mbox{ comparaisons}) + \mathcal{O}(N\mbox{ \mathcal{O}(N^2\mbox{ comparaisons}) + \mathcal{O}(N\mbox{swaps})=\mathcal{O}(N^2).
swaps})=\mathcal{O}(N^2).
$$ $$
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment