ajout td1

This commit is contained in:
2025-09-10 17:24:24 +02:00
parent ca552281c9
commit 38dadaa0b4
7 changed files with 87 additions and 3 deletions

View File

@@ -78,3 +78,55 @@ void generate_array(int* array, int length)
array[i] = rand() % 20 + 1;
}
}
void echanger(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int partitionner(int T[], int premier, int dernier, int pivot) {
echanger(&T[pivot], &T[dernier]); // Échanger le pivot avec le dernier élément
int j = premier;
for (int i = premier; i < dernier; i++) {
if (T[i] <= T[dernier]) {
echanger(&T[i], &T[j]);
j++;
}
}
echanger(&T[dernier], &T[j]); // Placer le pivot à sa position finale
return j;
}
int choix_pivot(int T[], int premier, int dernier) {
// Pour simplifier, on choisit simplement le dernier élément comme pivot
return dernier;
}
void tri_rapide(int T[], int premier, int dernier) {
if (premier < dernier) {
int pivot = choix_pivot(T, premier, dernier);
pivot = partitionner(T, premier, dernier, pivot);
tri_rapide(T, premier, pivot - 1);
tri_rapide(T, pivot + 1, dernier);
}
}