83 lines
1.6 KiB
Markdown
83 lines
1.6 KiB
Markdown
# 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**.
|
|
|
|
|
|
|
|
### Le programme
|
|
|
|

|
|
|
|
|
|
|
|
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é ?
|
|
|
|
Pourquoi ?
|
|
|
|
--------
|
|
|
|
#### 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é ?
|
|
|
|
Pourquoi ?
|
|
|
|
-----------
|
|
|
|
#### 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... |