N ous pouvons créer un programme C pour trier les éléments d'un tableau à l'aide du tri par insertion. [TP.05] Utilisons le tri - suite - [LINFO1103] Introduction à l'algorithmique | INGInious. L'algorithme du tri par insertion n'est utile que pour les petits éléments, car elle nécessite plus de temps pour trier un grand nombre d'éléments. Voici comment le processus fonctionne: Exemple: Source: Programme C pour trier un tableau à l'aide de l'algorithme de tri par insertion. /* Tri par insertion */ #include#define SIZE 10 int main() { int tab[10] = { 3, -2, 7, 10, -5, 22, 1, 27, 25, 30}; int i, j, tmp; //afficher les éléments du tableau for (i=0; i < SIZE; ++i) printf("%4d", tab[i]);} for (i=1; i <= SIZE-1; i++) { j = i; while (j > 0 && tab[j-1] > tab[j]) { tmp = tab[j]; tab[j] = tab[j-1]; tab[j-1] = tmp; j--;}} printf("\n******** tableau triée par ordre croissant ********\n"); for (i=0; i < SIZE; i++) printf("%4d", tab[i]); return 0;} La sortie: 3 -2 7 10 -5 22 1 27 25 30 ******** tableau triée par ordre croissant ******** -5 -2 1 3 7 10 22 25 27 30
Le tri par sélection est un tri par comparaison. Le principe de tri de sélection est le suivant: Rechercher le plus petit élément et l'échanger avec le premier élément t[1]. Rechercher le deuxième petit élément et l'échanger avec le deuxième élément t[2]. Faire la même chose avec le reste des éléments jusqu'à ce que le tableau soit trié. #include
#include void tri_selection(int t[], int n) int min, temp; for(int i = 0; i < n-1; i++) { min = i; for(int j = i+1; j < n; j++) if(t[j] < t[min]) min = j; if(min! =i) //échanger t[i] et t[min] temp = t[i]; t[i]=t[min]; t[min]=temp;}}} main() int T[10]={5, 2, 126, 9, 51, 7, 1, 6, 12, 24}; tri_selection(T, 10); for (int i=0; i< 10; i++) printf("%d ", T[i]); system("pause");}
À chaque appel de la méthode, nous obtiendrons la position triée du pivot, car nous séparons les valeurs inférieures et supérieures au pivot. Et par appel récursif, nous obtiendrons le tableau trié complet. L'exemple de code ci-dessous montre comment implémenter l'algorithme de tri rapide expliqué ci-dessus en Python: def sort(array): left = [] equal = [] right = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: (x) elif x == pivot: (x) elif x > pivot: (x) return sort(left) + equal + sort(greater) #recursive calling of the sort() function else: # return the array, when it contains only 1 element return array Article connexe - Python Sort Trier avec Lambda en Python
= (); ++it) { auto key = it; for (auto i = it - 1; i >= (); --i) { if (*i > *key) { std::swap(*i, *key); key--;} else { break;}}}} int main() { vector
A voir également
Nous pouvons également indiquer le signe de l'entier passé comme la direction vers laquelle l'opération de rotation doit être traitée. Dans cette fonction personnalisée, nous avons arbitrairement choisi l'entier positif pour signifier la rotation à droite et l'entier négatif pour signifier la rotation à gauche. Notez que ce modèle de fonction rotateArrayElements peut fonctionner à la fois sur des objets de type tableau fixe et dynamique construits avec les conteneurs de la bibliothèque standard C++.
Pendant ce temps, le tri par sélection doit toujours rechercher dans chaque élément du sous-tableau non trié pour trouver le plus petit (ou le plus grand) élément. Notez que nous pouvons utiliser à la fois l'implémentation de la fonction insertionSort sur le vecteur de std::string car cette dernière classe implémente les surcharges de l'opérateur de comparaison. Algorithme de tri d un tableau en c en. L'exemple suivant montre son utilisation de base avec le vecteur de chaîne et imprime la liste triée de mots. #include