readme
This commit is contained in:
parent
bf114437af
commit
a7b30e8e79
66
README.md
66
README.md
@ -1,35 +1,63 @@
|
|||||||
# RAPPORT
|
# RAPPORT
|
||||||
|
|
||||||
## EXO2
|
## EXO2
|
||||||
|
|
||||||
- function_1(tableau1, tableau2) : complexité alogithmique est égale à : O(n*m) dans le pire cas ou n est la taille du tableau 1 et m la taille du tableau 2.
|
- **function_1(tableau1, tableau2)** :
|
||||||
- function_2(x) : compléxité algorithmique est égale a : O(x) car la boucle while fait x itération et car x est décrémenter de 1 jusqu'a 0.
|
- **Complexité algorithmique** : O(n * m)
|
||||||
- function_3(x) : cette fois ci la compléxité algorithmique est égale a : O(1) car en fonction de la valeur de x uniquement une des trois conditions qui effectue une opération simple.
|
- Dans le pire cas, où `n` est la taille du tableau 1 et `m` la taille du tableau 2.
|
||||||
|
|
||||||
## EXO3
|
- **function_2(x)** :
|
||||||
|
- **Complexité algorithmique** : O(x)
|
||||||
|
- La boucle `while` fait `x` itérations, et `x` est décrémentée de 1 jusqu'à 0.
|
||||||
|
|
||||||
Pour cette fonction on a :
|
- **function_3(x)** :
|
||||||
|
- **Complexité algorithmique** : O(1)
|
||||||
|
- En fonction de la valeur de `x`, une des trois conditions exécute une opération simple.
|
||||||
|
|
||||||
- la premiere boucle for : O(g)
|
---
|
||||||
- ensuite malloc : O(1)
|
|
||||||
- deuxieme boucle for : O(g*n)
|
|
||||||
- bubblesort : O(g*n²)
|
|
||||||
- free : O(1)
|
|
||||||
- find_rank_student : O(g*n²) de bubblesort + O(g*n) : O(g*n^3)
|
|
||||||
|
|
||||||
|
## EXO3
|
||||||
|
|
||||||
simplification :
|
Pour cette fonction, on a :
|
||||||
|
|
||||||
- on peut enlever les O(1) et on garde la complexité la plus élévé donc O(g*n^3)
|
- **La première boucle for** : O(g)
|
||||||
|
- **Malloc** : O(1)
|
||||||
|
- **Deuxième boucle for** : O(g * n)
|
||||||
|
- **Bubblesort** : O(g * n²)
|
||||||
|
- **Free** : O(1)
|
||||||
|
- **find_rank_student** : O(g * n²) pour Bubblesort + O(g * n) : O(g * n^3)
|
||||||
|
|
||||||
Cela fait pour la compléxité algorithmique de sort_student : O(g*n^3)
|
**Simplification :**
|
||||||
|
- On peut enlever les O(1) et conserver la complexité la plus élevée, donc O(g * n^3).
|
||||||
|
|
||||||
|
**Complexité algorithmique pour sort_student :** O(g * n^3)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## EXO4
|
## EXO4
|
||||||
|
|
||||||
compléxité algorithmique de ma fonction tri() :
|
Voici le code :
|
||||||
- pour m éléments dans chaque sous-liste n, alors la compléxité algorithmique de sort() est O(m log m) pour n sous liste on a O(n * m log m)
|
|
||||||
|
|
||||||
- pour le tri la complexité algorithmique est O(n²)
|
```python
|
||||||
|
def tri(t):
|
||||||
|
for tab in t:
|
||||||
|
for i in range(len(tab)):
|
||||||
|
for j in range(len(tab) - 1):
|
||||||
|
if tab[j] > tab[j + 1]:
|
||||||
|
tab[j], tab[j + 1] = tab[j + 1], tab[j]
|
||||||
|
|
||||||
|
for i in range(len(t)):
|
||||||
|
for j in range(len(t) - 1):
|
||||||
|
if t[j][0] > t[j + 1][0]:
|
||||||
|
t[j], t[j + 1] = t[j + 1], t[j]
|
||||||
|
|
||||||
|
print(t)
|
||||||
|
|
||||||
on prend la plus elevé et donc on pour ma fonction O(n²)
|
tri([[3, 9, 6], [9, 3, 8], [10, 67, 55]])
|
||||||
|
|
||||||
|
Complexité algorithmique de ma fonction tri() :
|
||||||
|
|
||||||
|
- Pour m éléments, la complexité algorithmique de chaque sous-liste est O(m²), multipliée par le nombre de sous-listes, cela fait : O(n * m²).
|
||||||
|
- Pour le tri final, la complexité algorithmique est O(n²).
|
||||||
|
|
||||||
|
On garde la plus élevée, donc pour ma fonction : O(n * m²) + O(n²).
|
12
tri.py
12
tri.py
@ -1,12 +1,14 @@
|
|||||||
def tri(t):
|
def tri(t):
|
||||||
# Trier chaque sous-liste individuellement
|
|
||||||
for tab in t:
|
for tab in t:
|
||||||
tab.sort()
|
for i in range(len(tab)):
|
||||||
|
for j in range(len(tab) - 1):
|
||||||
|
if tab[j] > tab[j + 1]:
|
||||||
|
tab[j], tab[j + 1] = tab[j + 1], tab[j]
|
||||||
|
|
||||||
for i in range(len(t)):
|
for i in range(len(t)):
|
||||||
for j in range(i + 1, len(t)):
|
for j in range(len(t) - 1):
|
||||||
if t[i][0] > t[j][0]:
|
if t[j][0] > t[j + 1][0]:
|
||||||
t[i], t[j] = t[j], t[i]
|
t[j], t[j + 1] = t[j + 1], t[j]
|
||||||
|
|
||||||
print(t)
|
print(t)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user