Selection Sort
Description du code
Exemple de tri par sélectionCode source ou contenu du fichier
Code Pascal (Selection Sort) (66 lignes)
program selectionSort; function maxValueIndex(var a : array of integer; minIndex, maxIndex : integer); {Pre: a defined maxIndex>=minIndex; minIndex>=0; a[minIndex..maxIndex] defined Post: for each i into minIndex..maxIndex, a[maxIndex] >= a[i] } var tempMax : integer; begin if minIndex >= maxIndex then maxValueIndex := minIndex; else begin tempMax := maxValueIndex(a, minIndex+1, maxIndex); if a[minIndex]<a[tempMax] then maxValueIndex := tempMax; else maxValueIndex := minIndex; end end; procedure swap(var a : array of integer; i, j : integer); {Pre: a defined j>i; i>=0; a[i] defined a[j] defined Post: a[i]=old value at a[j] et a[j]=old value at a[i] } var temp: integer; begin temp := a[i]; a[i] := a[j]; a[j] := temp; end; procedure selectionSort(var a : array of integer; arraySize : integer); {Pre: a defined arraySize>=0; a indexed from 0 to arraySize -1 for each i into 0..arraySize-1, a[i] defined Post: for each i into 0..arraySize-2, a[i] <= a[i+1] } var i : integer; begin for i := arraySize downto 0 do swap(a, i, maxValueIndex(a,1,i)); end; {main program } begin const maxIndice = 7; var testArray : packed array[0..maxIndice] of integer; testArray[0] := 8; testArray[1] := 4; testArray[2] := 6; testArray[3] := 2; testArray[4] := 13; testArray[5] := 4; testArray[6] := 1; testArray[7] := 20; var i : integer; writeln('Unsorted array :'); for i:=0 to maxIndice do writeln('value ', testArray[i], ' at index ', i); selectionSort(testArray, maxIndice+1); writeln('Sorted array :'); for i:=0 to maxIndice do writeln('value ', testArray[i], ' at index ', i); end.
Autres extraits de codes en Pascal
- Merge Sort Exemple de tri par fusion
- Selection Sort Exemple de tri par sélection
- Suite de Fibonacci Exemple de récursion en Pascal
- Suite de Fibonacci Exemple de méoïsation en Pascal
- Tous les extraits
Version en cache
22/12/2024 18:30:09 Cette version de la page est en cache (à la date du 22/12/2024 18:30:09) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 05/10/2009, dernière modification le 28/10/2018
Source du document imprimé : https://www.gaudry.be/sniplet-rf-pascal/tri-selection.pas.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.