Manipulations de données
Manipulation = Tri + Recherche + Transformation
Traitement algorithmique des structures de données
Définition :
Manipulation de données : ensemble d'opérations permettant de traiter, organiser et transformer des données stockées dans des structures de données.
Opérations de base :
🔍 Recherche d'éléments
📊 Tri de données
➕ Insertion/suppression
🔄 Modification
📊 Tri de données
➕ Insertion/suppression
🔄 Modification
Objectifs :
✅ Organiser les données
✅ Faciliter l'accès
✅ Optimiser les traitements
✅ Extraire l'information
✅ Faciliter l'accès
✅ Optimiser les traitements
✅ Extraire l'information
Algorithmes classiques
Recherche linéaire : O(n)
Tri à bulles : O(n²)
Tri par insertion : O(n²)
Sélection : O(n)
Complexités
O(1) : temps constant
O(n) : linéaire
O(n²) : quadratique
Méthodes de manipulation
Recherche dichotomique
Calculs statistiques
Inversion de structures
Filtrage de données
Exemples de code
# Recherche linéaire
def recherche(L, x):
for i in range(len(L)):
if L[i] == x:
return i
return -1
# Tri à bulles
def tri_bulles(L):
n = len(L)
for i in range(n):
for j in range(0, n-i-1):
if L[j] > L[j+1]:
L[j], L[j+1] = L[j+1], L[j]
# Filtrage
pairs = [x for x in L if x % 2 == 0]
Bonnes pratiques
Choix d'algorithme : adaptatif
Itération efficace : structures adaptées
Complexité : optimale
Erreurs fréquentes
Erreur 1 :
Complexité quadratique inutile
for i in range(n):
for j in range(n):
if L[i] == L[j]: # Peut être évité
for i in range(n):
for j in range(n):
if L[i] == L[j]: # Peut être évité
Erreur 2 :
Modifications pendant l'itération
for element in L:
if condition:
L.remove(element) # Risque d'erreur
for element in L:
if condition:
L.remove(element) # Risque d'erreur
Erreur 3 :
Oubli des cas limites
tri([]) # Liste vide
recherche([1], 2) # Élément absent
tri([]) # Liste vide
recherche([1], 2) # Élément absent