2022-03-17 22:54:29 +01:00
# 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**.
2022-03-17 23:55:13 +01:00
### Le programme

2022-03-17 22:54:29 +01:00
On supposera que tous les tableaux traités ici contiennent des nombres.
### Exemples
2026-01-15 00:29:08 +01:00
#### Recherche d'occurrence
2022-03-17 22:54:29 +01:00
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 )):
2022-03-24 08:26:14 +01:00
if tab [ i ] == e :
2022-03-17 22:54:29 +01:00
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
```
2022-03-30 16:27:52 +02:00
*Complexité linéaire*
2022-03-17 22:54:29 +01:00
2026-01-15 00:29:08 +01:00
Car on parcourt toute la liste et donc pour n élèments, on effectuera n comparaisons.
2022-03-17 23:55:13 +01:00
2022-03-17 22:54:29 +01:00
--------
#### 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
```
2022-03-30 16:27:52 +02:00
*Complexité linéaire*
2022-03-17 22:54:29 +01:00
2026-01-15 00:29:08 +01:00
Car on parcourt toute la liste et donc pour n élèments, on effectuera n comparaisons.
2022-03-17 23:55:13 +01:00
2022-03-17 22:54:29 +01:00
-----------
#### Autres exemples simples :
2026-01-15 00:29:08 +01:00
- Vérifier si un tableau est rangé par ordre croissant ou décroissant
2022-05-06 10:32:24 +02:00
- Chercher un mot de plus de n lettres dans une liste de mots...
--------
Auteur : Florian Mathieu
2026-08-11 23:29:03 +02:00
Licence CC BY-SA
2022-05-06 10:32:24 +02:00
2026-08-11 23:29:03 +02:00
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Licence Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a> <br />Ce cours est mis à disposition selon les termes de la <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International</a>.