Vous devez vous connecter pour exécuter votre code.
Tri par insertion
Implémentez le tri par insertion croissante avec exclusivement des pointeurs.
Invariant attendu :
prefixe x[0..i-1] est le tri de sa valeur initiale
Quantité de contrôle attendue :
i
#include <stdio.h>
void tri_insertion(int *x, size_t n) {
for (size_t i = 1; i < n; i++) {
int cle = x[i];
int *prec = x + i - 1;
while (prec >= x && *prec > cle) {
*(prec + 1) = *prec;
prec--;
}
*(prec + 1) = cle;
}
}
int main() {
int n;
scanf("%d", &n);
int arr[1000];
for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
tri_insertion(arr, n);
return 0;
}