Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • algorithmique/cours
  • aurelien.boyer/cours
  • jeremy.meissner/cours
  • radhwan.hassine/cours
  • yassin.elhakoun/cours-algo
  • gaspard.legouic/cours
  • joachim.bach/cours
  • gabriel.marinoja/algo-cours
  • loic.lavorel/cours
  • iliya.saroukha/cours
  • costanti.volta/cours
  • jacquesw.ndoumben/cours
12 results
Select Git revision
Show changes
Showing
with 2307 additions and 2131 deletions
--- ---
title: "Introduction aux algorithmes" title: "Introduction aux algorithmes III"
date: "2022-10-05" date: "2024-09-30"
patat:
eval:
tai:
command: fish
fragment: false
replace: true
ccc:
command: fish
fragment: false
replace: true
images:
backend: auto
--- ---
# Rappel (1/2) # Rappel (1/2)
...@@ -23,7 +11,6 @@ patat: ...@@ -23,7 +11,6 @@ patat:
* L'algorithme de la factorielle. * L'algorithme de la factorielle.
* L'algorithme du PPCM. * L'algorithme du PPCM.
* Le début de l'algorithme du PGCD.
# Rappel (2/2) # Rappel (2/2)
...@@ -158,16 +145,15 @@ Par groupe de 3 (5-10min): ...@@ -158,16 +145,15 @@ Par groupe de 3 (5-10min):
## Pseudo-code ## Pseudo-code
```C ```C
entier pgcd(m, n) { entier pgcd(m, n)
tmp_n = n tmp_n = n
tmp_m = m tmp_m = m
tant que (tmp_m ne divise pas tmp_n) { tant que (tmp_m ne divise pas tmp_n)
tmp = tmp_n tmp = tmp_n
tmp_n = tmp_m tmp_n = tmp_m
tmp_m = tmp modulo tmp_m tmp_m = tmp modulo tmp_m
}
retourne tmp_m retourne tmp_m
}
``` ```
# Le code du PGCD de 2 nombres # Le code du PGCD de 2 nombres
...@@ -200,7 +186,7 @@ void main() { ...@@ -200,7 +186,7 @@ void main() {
* Remplissage d'un tableau et recherche de la valeur minimal * Remplissage d'un tableau et recherche de la valeur minimal
* Anagrammes * Anagrammes
* Palindromes * Palindromes
* Crible dratosthène * Crible d’Ératosthène
. . . . . .
...@@ -211,7 +197,7 @@ void main() { ...@@ -211,7 +197,7 @@ void main() {
\footnotesize \footnotesize
* Objets de même type: leur nombre est **connu à la compilation**; * Objets de même type: leur nombre est **connu à la compilation**;
* Stockés contigüement en mémoire (très efficace); * Stockés de façon contiguë en mémoire (très efficace);
```C ```C
#define SIZE 10 #define SIZE 10
...@@ -235,8 +221,7 @@ void main() { ...@@ -235,8 +221,7 @@ void main() {
# Remarques # Remarques
* Depuis `C99` possibilité d'avoir des tableaux dont la taille est *inconnue à * Depuis `C99` la taille peut être *inconnue à la compilation* (VLA);
la compilation*;
```C ```C
int size; int size;
...@@ -273,6 +258,7 @@ for (int i = 0; i < SIZE; ++i) { ...@@ -273,6 +258,7 @@ for (int i = 0; i < SIZE; ++i) {
tab[i] = rand() / (double)RAND_MAX * 10.0 - 5.0; tab[i] = rand() / (double)RAND_MAX * 10.0 - 5.0;
// tab[i] contient un double dans [-5;5] // tab[i] contient un double dans [-5;5]
} }
int other_tab[4] = {0}; // pareil que {0, 0, 0, 0}
``` ```
# Recherche du minimum dans un tableau (1/2) # Recherche du minimum dans un tableau (1/2)
...@@ -304,7 +290,7 @@ pour i de 1 à SIZE - 1 ...@@ -304,7 +290,7 @@ pour i de 1 à SIZE - 1
int index = 0; int index = 0;
float min = tab[0]; float min = tab[0];
for (int i = 1; i < SIZE; ++i) { for (int i = 1; i < SIZE; ++i) {
if min > tab[i] { if (min > tab[i]) {
min = tab[i]; min = tab[i];
index = i; index = i;
} }
...@@ -322,18 +308,10 @@ Trier un tableau par ordre croissant. ...@@ -322,18 +308,10 @@ Trier un tableau par ordre croissant.
```C ```C
ind = 0 ind = 0
tant que (ind < SIZE-1) tant que (ind < SIZE-1)
Trouver le minimum du tableau, tab_min[ind:SIZE]. Trouver le minimum du tableau, tab_min = min([ind:SIZE]).
Échanger tab_min avec tab[ind] Échanger tab_min avec tab[ind]
ind += 1 ind += 1
``` ```
# Tri par sélection (2/2)
## Implémentation par groupe de 3
* Initialiser aléatoirement un tableau de `double` de taille 10;
* Afficher le tableau;
* Trier par sélection le tableau;
* Afficher le résultat trié;
* Vérifier algorithmiquement que le résultat est bien trié.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.