• Aucun résultat trouvé

PLAN DU COURS

N/A
N/A
Protected

Academic year: 2022

Partager "PLAN DU COURS"

Copied!
9
0
0

Texte intégral

(1)

PLAN DU COURS

• Introduction au langage C

• Notions de compilation

• Variables, types, constantes,

• Tableaux, opérateurs

• Entrées sorties de base

• Structures de contrôle

• Algorithmes de recherche

• Algorithmes de Tri –Insertion-Fusion

• Les pointeurs

• Procédures et fonctions

• les types composés

• Allocation dynamique

• Listes Chaînées

101 MAP - UNS

ALGORITHME DE RECHERCHE

Objectif : Rechercher une information dans un tableau

Méthode : séquentielle

• Soit Tun tableau de N éléments et val l’élément cherché

• parcours du tableau à partir du premier élément (T[0])

• Arrêt quand élément trouvé ou si fin de tableau (T[n-1])

Complexité :

• linéaire de l’ordre de n.

• Pire cas : parcourt de tout le tableau

(2)

RECHERCHE SÉQUENTIELLE

Algorithme recherche_sequentielle

{Recherche le premier indice où se trouve la valeur val parmi les N données du tableau tab; affiche l’indicesi la valeur est trouvée. }

variables : T [0, N-1], val entier n, val, indice : entier Début

indice ←0

tant que ( val <> T[indice] && indice < N-1) faire indice ←indice + 1

ftq

si T[indice] = val alors

afficher( " l'élément se trouve en : » indice);

sinon

afficher( « Elément non présent " );

fsi Fin

MAP - UNS 103

7 1 15 8 2

ALGORITHME DE RECHERCHE

Objectif : Rechercher une information dans un tableau trié

Méthode : dichotomique ou « diviser pour régner »

• Soit Tun tableau de N éléments et val l’élément cherché

• T est trié

• Sinon effectuer un prétraitement de tri.

• Comparer valavec l’élément u milieu du tableau T.

• Si c’est le même => trouvé

• sinon on recommence sur la première moitié ou la seconde selon que val est

< à valmidou val > valmid

• Arrêt quand élément trouvé ou si fin de tableau (T[indice-1])

Complexité :

• T(n) nombre d’opérations sur un tableau de taille n

• T(n) satisfait l’équation de récurrence T(n) = T(n/2)+1

MAP - UNS 104

(3)

RECHERCHE DICHOTOMIQUE

Algorithme recherche_dichotomique

{Recherche le premier indice où se trouve la valeur val en utilisant la stratégie diviser pour régner } variables T [0, N-1] , val entier

lnf, Sup, N, Mi : entier Début

Saisir(val) Inf ← 0 Sup ← N-1 Mi ← (Inf + Sup)/2

tant que ( val <> T[Mi] && Inf <= Sup) faire si val < T[Mi] alors

Sup = Mid - 1 sinon

Inf = Mid + 1 fsi

Mi ← (Inf + Sup)/2 ftq

si T[Mi] = val alors

afficher( " l'élément se trouve en : » Mi);

sinon

afficher( « Elément non présent " );

fsi Fin

MAP - UNS 105

PLAN DU COURS

• Introduction au langage C

• Notions de compilation

• Variables, types, constantes,

• Tableaux, opérateurs

• Entrées sorties de base

• Structures de contrôle

• Algorithmes de recherche

• Algorithmes de Tri –Insertion-Fusion

• Les pointeurs

• Procédures et fonctions

• les types composés

• Allocation dynamique

• Listes Chaînées

(4)

ALGORITHMES DE TRI

Objectif : Etant donné une suite de N nombres de la ranger par ordre croissant (ou décroissant)

Différents algorithmes

• Tri par sélection

• Tri se fait en espace constant

• Peu économe en temps (2 boucles for imbriquées )

Boucle interne fait N-1 opérations

Boucle externe fait N-1 à itération 1, N-2 (itération 2) …

Complexité 2*(N-1)+(N-2) +(N-3) …+ 1 = (N+1)*N+N! ≈ N2

• Tri à bulles

• Peu économe en temps (2 boucles for imbriquées )

• Complexité ≈ N2

• Tri rapide

• Econome en temps

• Complexité ≈ N*Log(N)

• Algorithme récursif

MAP - UNS 107

ALGORITHME DE TRI

Objectif : Etant donné une suite de N nombres de la ranger par ordre croissant (ou décroissant)

Méthode : Tri par sélection

• Soit Tun tableau de N éléments

• Rechercher le plus petit élément parmi les Net on l’échange à la fin avec le 1er

• Puis recherche du plus petit parmi les N-1éléments restant et échange avec le 2ème

• … parmi N-k+1éléments restants échange avec le Kième

MAP - UNS 108

7 8 9 2 0

0 8 9 2 7

0 2 9 8 7 0 2 7 8 9

(5)

TRI PAR SELECTION

Algorithme tri_selection

{ Ranger par ordre croissant(ou décroissant) une suite de Nnombres rangés dans un tableau T. }

variables tab : tableau [0, N-1] de entier N, i, j, indiceMin, ValMin : entier Début

pour i = 0 àN-2 faire indiceMin ← i ValMin ← T[i]

pourj = i +1 àN-1 faire si T[j] < ValMinalors

indiceMin ← j ValMin ← T[j]

fsi fpour

T[indiceMin] ← T[i] { Echange des deux valeurs } T[i] ← ValMin

fpour

Fin MAP - UNS 109

7 8 9 2 0

7 8 9 2 0

i=0

j=1 j=2 j=3 j=4

indiceMin=0 ValMin=7 indiceMin=3 ValMin=2 IndiceMin=4 ValMin=0 T[0]=0

T[4]=7

i=1

ALGORITHME DE TRI

• Objectif : faire remonter les plus grandes valeurs en haut de tableau

• Méthode : Tri à bulle

Soit Tun tableau de N éléments

Comparer 1erélément avec 2ème. Si 1er>2ème, échanger les deux éléments

Comparer 2èmeélément avec 3ème. Si 2er>3ème, échanger les deux éléments

… comparer N-2ièmeavec N-1 ième. Si N-2 ième> N-1ième,échanger les deux éléments.

Recommencer à partir du début tant que vous avez opéré au moins à un échange

5 1 4 2 8

1 5 4 2 8

1 4 2 5 8

(6)

TRI À BULLE

Algorithme tri_à_bulle

{ faire remonter les plus grandes valeurs en haut d’un tableau T de Néléments. } variables tab : tableau [0, N-1] de entier

N, i, j, temp : entier nouvel_echange : booleen Début

répéter

nouvel_echange ←faux pouri = 0 àN-1 faire

si T[ i ] > T[i+1] alors temp ← T[ i +1]

T[i+1 ] ← T[ i ] T[ i ] ← temp

nouvel_echange ← vrai fsi

fpour

tant que nouvel_echange ==vrai

Fin MAP - UNS 111

ALGORITHME D’INSERTION POSITION P

• Objectif : Ajouter un élément dans un tableau trié ou pas. Insertion n’est possible que si il reste de la place dans le tableau. L’Insertion est un décalage à droite des éléments du tableau

• Méthode : Insertion Soit Tun tableau de taille de N éléments, On insère un élément Và un position p

• Variable k positionnée en fin de tableau

• Copie de T[k] dans T[k+1] tant que k>=P

• Qdk=pranger la valeur ven T[k]

• Incrémenter N

5 1 4 2 8

p k

5 1 4 2 8 8

p k

5 1 4 2 2 8

p k

5 1 4 4 2 8

p k

5 1 v 4 2 8

p 112

MAP - UNS

(7)

INSERTION À UNE POSITION P

Algorithme INSERTION_POSITION_P

{ Insérer une valeur và une position pdans un tableau T de Néléments et de taille S} Constantes S= 20

variables T : tableau [0, S-1] de entier N, p , v, : entier

Début

{ Code d’initialisation des N éléments du tableau } Afficher(« entrez val à insérer et position p}

Saisir(p); Saisir(v);

si N < S alors

pour k= N-1 àp pas-1 faire T[k+1] ← T[k]

fpour T[p] ← v N ← N+1 sinon

Afficher («Insertion impossible ») fsi

Fin MAP - UNS 113

ALGORITHME D’INSERTION DANS TABLEAU TRIÉ

• Objectif: Ajouter un élément dans un tableau trié ou pas. Insertion n’est possible que si il reste de la place dans le tableau. L’Insertion est un décalage à droite des éléments du tableau

• Méthode : Insertion Soit Tun tableau de taille de N éléments triés , On insère un élément V

• Variable k positionnée en fin de tableau

• Copie de T[k] dans T[k+1]

• tant que k>=0 && V>T[k]

• QdT[k]<vranger la valeur ven T[k+1]

• Incrémenter N

1 2 4 5 8

k

1 2 4 5 8 8

k

1 2 4 5 5 8

k

1 2 4 4 5 8

k

(8)

INSERTION DANS UN TABLEAU TRIÉ

Algorithme INSERTION_V_dans_Tableau-Trié

{ Insérer une valeur và une position pdans un tableau T de Néléments et de taille S rangé par ordre croissant}

Constantes S= 20

variables T : tableau [0, S-1] de entier N, p , v, : entier

Début

{ Code d’initialisation des N éléments du tableau } Afficher(« entrez val à insérer} Saisir(v);

si N < S alors

tant que k>= 0 && T[k] > val faire T[k+1] ← T[k]

k ← k -1 fpour

T[k+1] ← v N ← N+1 sinon

Afficher («Insertion impossible ») fsi

Fin

MAP - UNS 115

ALGORITHME DE SUPPRESSION POSITION P

• Objectif : Supprimer un élément dans un tableau trié ou pas. La suppression est un décalage à gauche des éléments du tableau

• Méthode : Suppression Soit Tun tableau de taille de N éléments, On supprime un élément Và un position p

• Variable kpositionnée à p+1

• Copie de T[k] dans T[k-1] tant que k<N

• Décrémenter N

5 1 4 2 8

p k

5 1 2 2 8

p k

5 1 2 8 8

p k

MAP - UNS

(9)

SUPPRESSION À UNE POSITION P

Algorithme SUPPRESSION_POSITION_P

{ Supprimer l’élément à une position pdans un tableau T de Néléments et de taille S} Constantes S= 20

variables T : tableau [0, S-1] de entier N, p , v, : entier

Début

{ Code d’initialisation des N éléments du tableau } Afficher(« entrez position p de l’élément à supprimer ») Saisir(p);

pour k= p+1 àN – 1 faire T[k-1] ← T[k]

fpour N ← N-1 Fin

MAP - UNS 117

SUPPRESSION D’UNE VALEUR V

Algorithme SUPPRESSION_VALEUR_V

{ Supprimer une valeur vdans un tableau T de Néléments et de taille S} variables T : tableau [0, S-1] de entier

N, p=0 , v, k : entier Début

{ Code d’initialisation des N éléments du tableau } Afficher(« entrez la valeur à supprimer ») Saisir(v);

tant que T[p] <> val && p < N-1 faire p ← p +1

ftq

si T[p] == val alors

pour k= p+1 àN -1 faire T[k-1] ← T[k]

fpour N ← N-1 sinon

Références

Documents relatifs

CHAP N5 Fiche D’Exercices N°3 : valeurs approchées et arrondis d’un nombre1.

Quel est le coefficient de proportionnalité qui exprime la remise en fonction du montant des achats?. (Montant des achats) ×

SMnV (monétaire: semiliquidités) dont la croissance sur toute la période considérée est très régulière (cf. courbe); et SCnv, déjà signalée au §2.2 pour sa spécialisation

du mouvement brownien. des données : cf facteur, classification, méthode, in- terprétation, philosophie, synthèse. stochasti- que : cf reconstitution, mé- thode des moindres

´ elev´ es, leur ajoutent des am´ eliorations, et l’introduction d’un « effet qualit´ e » abaissant leurs prix ` a l’ann´ ee cible accroˆıt la diminution de prix,

[r]

Pour obtenir la courbe représentant la fonction f, il faut maintenant se placer dans le MENU GRAPH, la formule définissant f est alors déjà dans la ligne Y1, il faut simplement

Lors du Café de la Statistique du 10 septembre 2013 à Paris, Dominique Guellec, chef de la division des études de pays à l’OCDE, a expliqué de quelles statistiques on se sert