Exercice Trouver le K plus petit élément dans un tableau T
Enoncé :
Ecrire un algorithme qui permet de remplir un tableau T de N entiers positifs de 3 chiffres , de chercher et d’afficher le Kième plus petit élément s’il existe et l’indice de sa première apparition dans le tableau T
L’objectif est de trouver le k-ième plus petit élément dans un tableau sans trier le tableau, puis d’afficher sa première position. Le processus consiste à exclure successivement les plus petits éléments jusqu’à atteindre le k-ième
#Programme Principale Algorithme K_app debut Ecrire("donner la taille du tableau") lire(N) Remplir(N) Min_Tab(T) Max_Tab(T) Modifier(T,n,m) Premier_apparition(T, n) Kieme(T,K) Fin.
Commencez par saisir et remplir le tableau t avec les contrôles du saisie
Procédure Remplir(N: Entier) Début pour i de 1 à N faire Répéter Ecrire ("Donner l'élément ",i) lire (X) T[i] <-- X jusqu'à ( X >0 ET 100<X<999) Fin Pour Fin
le maximum et le minimum du tableau on doit utiliser deux fonction qui ont comme type de retour un entier
Fonction Minimum( T:tab ,N: Entier) : Entier Début Min <-- T[0] pour i de 1 à N faire si T[i] < Min alors Min <-- T[i] finsi fin pour retourner Min Fin
Fonction Maximum(T: tab , N: Entier ):Entier Début Max <-- T[0] pour i de 1 à N faire si T[i] > Max alors Max <-- T[i] finsi fin pour retourner Max fin
Le module Modifier
est utilisé pour remplacer un élément dans le tableau par une valeur supérieure à tous les autres éléments. Cela nous permet d’exclure cet élément des prochaines recherches.
Procédure Modifier( T:tab , n : entier , m : Entier) Début pour i de 1 à N faire Si T[i] = n Alors # l'élément a rechercher T[i] <-- m # l'élément à remplacer FinSi FinPour Fin
le module Premier_apparition() nous permet de renvoyez l’indice de l’élément
Fonction premier_apparition( T: tab , x : Entier):Entier Début r <-- -1 pour i de 1 à N faire Si T[i] = x Alors r <-- i FinSi FinPour Retourner r Fin
Le module Kieme orchestre tout le processus. Il trouve le k-ième plus petit élément en excluant progressivement les plus petits éléments
Procédure Kieme (T:Tab , K : Entier) Début max <-- Maximum (T) pour i de 1 à N faire min <-- Minimum(T) Si i = K Alors pos <-- premier_apparition(T,min) Ecrire ("Le ",K,"ime élément est ",min,"à la position",pos) Sinon Modifier(T,min,max) FinSi finpour Ecrire ("pas de K ieme élément") Fin