Vous devez vous connecter pour exécuter votre code.
Tri par selection
Implémentez le tri par sélection du minimum avec exclusivement des pointeurs (pas d'indices [i]).
Invariant attendu :
x[0..i-1] trie et <= x[i..n-1]
Quantité de contrôle attendue :
i
#include <stdio.h>
void tri_selection(int *x, size_t n) {
int *fin = x + n;
for (int *cur = x; cur < fin - 1; cur++) {
int *min = cur;
for (int *p = cur + 1; p < fin; p++)
if (*p < *min) min = p;
if (min != cur) {
int tmp = *cur; *cur = *min; *min = tmp;
}
}
}
int main() {
int n;
scanf("%d", &n);
int arr[1000];
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
tri_selection(arr, n);
return 0;
}