ajout cours algo + tris
This commit is contained in:
71
algorithmes/PARCOURS.md
Normal file
71
algorithmes/PARCOURS.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Parcours séquentiel d'un tableau
|
||||
|
||||
> Quelques exemples d'algorithmes qui nécessitent un parcours simple d'un tableau.
|
||||
>
|
||||
> On utilisera ici une seule boucle **for** : la complexité est donc **linéaire**.
|
||||
|
||||
On supposera que tous les tableaux traités ici contiennent des nombres.
|
||||
|
||||
### Exemples
|
||||
|
||||
#### Recherche d'occurence
|
||||
|
||||
Si on souhaite savoir si un élément nommé *e* en particulier se trouve dans un tableau *tab* :
|
||||
|
||||
```python
|
||||
def recherche(tab,e):
|
||||
occurrence = False
|
||||
for i in range (len(tab)):
|
||||
if tab[i] == b:
|
||||
occurrence = True
|
||||
return occurrence
|
||||
return occurrence
|
||||
```
|
||||
|
||||
***Complexité :***
|
||||
|
||||
Le programme effectue n+1 affectation :
|
||||
|
||||
- La première, avant la boucle.
|
||||
- Les n suivantes, selon la taille du tableau
|
||||
|
||||
Le coût est donc *linéaire* : proportionnel à n, il dépend donc de la taille du tableau, ***O(n)***
|
||||
|
||||
-------------
|
||||
|
||||
#### Recherche d'un extremum (maximum ou minimum)
|
||||
|
||||
Si on souhaite trouver le plus grand élément d'un tableau *tab* :
|
||||
|
||||
```python
|
||||
def recherche_max(tab):
|
||||
max = tab[0]
|
||||
for i in range (len(tab)):
|
||||
if tab[i] > max:
|
||||
max = tab[i]
|
||||
return max
|
||||
```
|
||||
|
||||
Complexité ?
|
||||
|
||||
--------
|
||||
|
||||
#### Calcul d'une moyenne
|
||||
|
||||
```python
|
||||
def moyenne(tab):
|
||||
m = 0
|
||||
for i in range(len(tab)):
|
||||
m = m + tab[i]
|
||||
moyenne = m // len (tab)
|
||||
return moyenne
|
||||
```
|
||||
|
||||
Complexité ?
|
||||
|
||||
-----------
|
||||
|
||||
#### Autres exemples simples :
|
||||
|
||||
- Vérifier si une un tableau est rangé par ordre croissant ou décroissant
|
||||
- Chercher un mot de plus de n lettres dans une liste de mots...
|
||||
Reference in New Issue
Block a user