0% ont trouvé ce document utile (0 vote)
32 vues18 pages

Tri et recherche dans un tableau C

Ce programme permet à l'utilisateur de saisir un tableau, puis de le trier en utilisant trois méthodes différentes : tri à bulles, tri par sélection et tri par insertion. Après le tri, il permet également de rechercher un élément spécifique et de compter combien de fois il apparaît dans le tableau. Toutes les opérations sont réalisées dans la fonction principale sans utiliser de fonctions définies par l'utilisateur.

Transféré par

hamzadac21
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues18 pages

Tri et recherche dans un tableau C

Ce programme permet à l'utilisateur de saisir un tableau, puis de le trier en utilisant trois méthodes différentes : tri à bulles, tri par sélection et tri par insertion. Après le tri, il permet également de rechercher un élément spécifique et de compter combien de fois il apparaît dans le tableau. Toutes les opérations sont réalisées dans la fonction principale sans utiliser de fonctions définies par l'utilisateur.

Transféré par

hamzadac21
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Voici une explication détaillée pour chaque section du code :

#include <stdio.h>

int main() {

int N;

// Saisie de la taille du tableau

printf("Entrez la taille du tableau : ");

scanf("%d", &N);
int tableau[N];

1. Déclaration de la taille du tableau :

• N est utilisé pour stocker la taille du tableau.

• L’utilisateur entre la taille N, puis un tableau tableau[N] est déclaré dynamiquement (fonctionne dans certains compilateurs modernes).
// Saisie des éléments du tableau

for (int i = 0; i < N; i++) {

printf("Entrez l'élément %d : ", i + 1);

scanf("%d", &tableau[i]);

2. Saisie des éléments du tableau :

• Ce bloc utilise une boucle for pour demander à l’utilisateur d’entrer chaque élément du tableau.

• scanf lit chaque valeur et la stocke dans la position i du tableau.


// Affichage du tableau initial

printf("Tableau initial : ");

for (int i = 0; i < N; i++) {

printf("%d ", tableau[i]);

printf("\n");

3. Affichage du tableau initial :


• Cette boucle for parcourt chaque élément du tableau et l’affiche.

• Le tableau est affiché avant d’effectuer les tris, ce qui permet de voir l’ordre des éléments d’origine.

// Tri à bulles

for (int i = 0; i < N - 1; i++) {

for (int j = 0; j < N - i - 1; j++) {

if (tableau[j] > tableau[j + 1]) {

int temp = tableau[j];


tableau[j] = tableau[j + 1];

tableau[j + 1] = temp;

4. Tri à Bulles :

• Le tri à bulles compare chaque paire d’éléments adjacents et les échange s’ils sont dans le mauvais ordre.

• La première boucle for contrôle le nombre de passes (répétitions) nécessaires.

• La deuxième boucle for effectue les comparaisons et échanges sur chaque paire.
• temp est une variable temporaire utilisée pour échanger deux éléments.

• Cette opération est répétée jusqu’à ce que le tableau soit trié.

// Affichage du tableau après tri à bulles

printf("Tableau après tri à bulles : ");

for (int i = 0; i < N; i++) {

printf("%d ", tableau[i]);

}
printf("\n");

5. Affichage du tableau après tri à bulles :

• Affiche le tableau après avoir appliqué le tri à bulles, pour vérifier si le tri a été effectué correctement.

// Tri par sélection

for (int i = 0; i < N - 1; i++) {


int minIndex = i;

for (int j = i + 1; j < N; j++) {

if (tableau[j] < tableau[minIndex]) {

minIndex = j;

int temp = tableau[minIndex];

tableau[minIndex] = tableau[i];

tableau[i] = temp;

}
6. Tri par Sélection :

• Le tri par sélection cherche l’élément minimum dans la partie non triée du tableau et l’échange avec l’élément en cours de traitement.

• minIndex garde la position de l’élément minimum trouvé dans la sous-partie non triée.

• La deuxième boucle for compare chaque élément dans la portion non triée pour trouver le minimum.

• Une fois trouvé, cet élément minimum est échangé avec l’élément à sa position correcte (i).

// Affichage du tableau après tri par sélection

printf("Tableau après tri par sélection : ");


for (int i = 0; i < N; i++) {

printf("%d ", tableau[i]);

printf("\n");

7. Affichage du tableau après tri par sélection :

• Affiche le tableau après avoir appliqué le tri par sélection pour s’assurer qu’il est bien trié.
// Tri par insertion

for (int i = 1; i < N; i++) {

int key = tableau[i];

int j = i - 1;

while (j >= 0 && tableau[j] > key) {

tableau[j + 1] = tableau[j];

j--;

tableau[j + 1] = key;

}
8. Tri par Insertion :

• Le tri par insertion prend chaque élément (appelé key) et le place dans la position correcte parmi les éléments déjà triés.

• j parcourt les éléments déjà triés, déplaçant les éléments plus grands que key d’une position vers la droite.

• Une fois que l’emplacement correct est trouvé, key est inséré à cette position.

• Ce tri est efficace pour les tableaux partiellement triés.


// Affichage du tableau après tri par insertion

printf("Tableau après tri par insertion : ");

for (int i = 0; i < N; i++) {

printf("%d ", tableau[i]);

printf("\n");

9. Affichage du tableau après tri par insertion :

• Affiche le tableau après le tri par insertion pour vérifier le bon ordre des éléments.
// Recherche et comptage d'un élément

int X, compteur = 0;

printf("Entrez l'élément à rechercher : ");

scanf("%d", &X);

for (int i = 0; i < N; i++) {

if (tableau[i] == X) {

compteur++;
}

printf("L'élément %d apparaît %d fois dans le tableau.\n", X, compteur);

return 0;

10. Recherche et Comptage d’un Élément :

• L’utilisateur entre un élément X qu’il souhaite rechercher.

• Une boucle for parcourt le tableau pour comparer chaque élément avec X.

• compteur est incrémenté chaque fois qu’un élément dans le tableau correspond à X.
• À la fin, le programme affiche le nombre d’occurrences de X.

Résumé :

Ce programme effectue les étapes suivantes :

1. Saisie et affichage du tableau initial.

2. Tri du tableau selon trois méthodes : tri à bulles, tri par sélection, et tri par insertion.

3. Recherche d’un élément pour compter ses occurrences.


Chaque partie est intégrée directement dans main sans fonctions supplémentaires, respectant la consigne de ne pas utiliser de fonctions
définies par l’utilisateur.

Vous aimerez peut-être aussi