forked from menault/TD4_DEV51_Qualite_Algo
TP4
This commit is contained in:
23
README.md
Normal file
23
README.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
Auteur : Aurélien Amary
|
||||||
|
|
||||||
|
# TP4 Complexité Algorithmique
|
||||||
|
## Calcul de complexité des fonctions
|
||||||
|
### Fonction n°1
|
||||||
|
- O(n*m)
|
||||||
|
- Double boucles for() imbriquées pour le parcours comparatif de 2 tableaux.
|
||||||
|
|
||||||
|
### Fonction n°2
|
||||||
|
- O(n)
|
||||||
|
- La boucle while() sera exécuté x fois.
|
||||||
|
|
||||||
|
### Fonction n°3
|
||||||
|
- O(1)
|
||||||
|
- Pas de boucles, les if() sont exécutés à la suite.
|
||||||
|
|
||||||
|
## Algorithme de Tri
|
||||||
|
### Fonction Tri Sélection
|
||||||
|
- O(n²/2)
|
||||||
|
- Double boucle, mais la seconde parcourt en moyenne que la moitié du tableau comme la taille parcouru diminue de 1 à chaque passage.
|
||||||
|
|
||||||
|
### Fonction Tri
|
||||||
|
- ?
|
55
Tri.py
Normal file
55
Tri.py
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
|
||||||
|
# Définition de Fonctions
|
||||||
|
|
||||||
|
def Tri(Tableau, DIMENSIONS, NVALEURS):
|
||||||
|
liste = Tableau
|
||||||
|
for d in range(0, DIMENSIONS-2):
|
||||||
|
liste = liste[0]
|
||||||
|
print(liste)
|
||||||
|
|
||||||
|
# Tri des tableaux feuilles
|
||||||
|
for f in range(0, NVALEURS):
|
||||||
|
TriSelection(liste[f])
|
||||||
|
|
||||||
|
# Suite - Seulement à deux dimensions
|
||||||
|
tabsomme = [0]*NVALEURS
|
||||||
|
for n in range(0, NVALEURS):
|
||||||
|
tabsomme[n] = sum(liste[n])
|
||||||
|
|
||||||
|
change = True
|
||||||
|
while change:
|
||||||
|
change = False
|
||||||
|
for i in range(0, NVALEURS-1):
|
||||||
|
if tabsomme[i] > tabsomme[i+1]:
|
||||||
|
tmp = tabsomme[i]
|
||||||
|
tabsomme[i] = tabsomme[i+1]
|
||||||
|
tabsomme[i+1] = tmp
|
||||||
|
|
||||||
|
tmp = Tableau[i]
|
||||||
|
Tableau[i] = Tableau[i+1]
|
||||||
|
Tableau[i+1] = tmp
|
||||||
|
|
||||||
|
|
||||||
|
def TriSelection(tableau):
|
||||||
|
"""Implémentation classique d'un tri par sélections."""
|
||||||
|
taille = len(tableau)
|
||||||
|
for i in range(0, taille-1):
|
||||||
|
idmin = i
|
||||||
|
for j in range(i+1, taille): # Parcours de la partie non-trié
|
||||||
|
if tableau[j] < tableau[idmin]:
|
||||||
|
idmin = j
|
||||||
|
if idmin != i :
|
||||||
|
tmp = tableau[i]
|
||||||
|
tableau[i] = tableau[idmin]
|
||||||
|
tableau[idmin] = tmp
|
||||||
|
|
||||||
|
|
||||||
|
# Programme Principal
|
||||||
|
|
||||||
|
DIMENSIONS = 2
|
||||||
|
NVALEURS = 3
|
||||||
|
Tableau = [ [0,3,2], [9,4,5], [4,1,3] ]
|
||||||
|
|
||||||
|
Tri(Tableau, DIMENSIONS, NVALEURS)
|
||||||
|
|
||||||
|
print(Tableau)
|
Reference in New Issue
Block a user