Contenu de sensagent
Dictionnaire et traducteur pour mobile
Nouveau : sensagent est maintenant disponible sur votre mobile
Publicité ▼
dictionnaire et traducteur pour sites web
Alexandria
Une fenêtre (pop-into) d'information (contenu principal de Sensagent) est invoquée un double-clic sur n'importe quel mot de votre page web. LA fenêtre fournit des explications et des traductions contextuelles, c'est-à-dire sans obliger votre visiteur à quitter votre page web !
Essayer ici, télécharger le code;
SensagentBox
Avec la boîte de recherches Sensagent, les visiteurs de votre site peuvent également accéder à une information de référence pertinente parmi plus de 5 millions de pages web indexées sur Sensagent.com. Vous pouvez Choisir la taille qui convient le mieux à votre site et adapter la charte graphique.
Solution commerce électronique
Augmenter le contenu de votre site
Ajouter de nouveaux contenus Add à votre site depuis Sensagent par XML.
Parcourir les produits et les annonces
Obtenir des informations en XML pour filtrer le meilleur contenu.
Indexer des images et définir des méta-données
Fixer la signification de chaque méta-donnée (multilingue).
Renseignements suite à un email de description de votre projet.
Jeux de lettres
Les jeux de lettre français sont :
○ Anagrammes
○ jokers, mots-croisés
○ Lettris
○ Boggle.
Lettris
Lettris est un jeu de lettres gravitationnelles proche de Tetris. Chaque lettre qui apparaît descend ; il faut placer les lettres de telle manière que des mots se forment (gauche, droit, haut et bas) et que de la place soit libérée.
boggle
Il s'agit en 3 minutes de trouver le plus grand nombre de mots possibles de trois lettres et plus dans une grille de 16 lettres. Il est aussi possible de jouer avec la grille de 25 cases. Les lettres doivent être adjacentes et les mots les plus longs sont les meilleurs. Participer au concours et enregistrer votre nom dans la liste de meilleurs joueurs ! Jouer
Dictionnaire de la langue française
Principales Références
La plupart des définitions du français sont proposées par SenseGates et comportent un approfondissement avec Littré et plusieurs auteurs techniques spécialisés.
Le dictionnaire des synonymes est surtout dérivé du dictionnaire intégral (TID).
L'encyclopédie française bénéficie de la licence Wikipedia (GNU).
Copyright
Les jeux de lettres anagramme, mot-croisé, joker, Lettris et Boggle sont proposés par Memodata.
Le service web Alexandria est motorisé par Memodata pour faciliter les recherches sur Ebay.
La SensagentBox est offerte par sensAgent.
Traduction
Changer la langue cible pour obtenir des traductions.
Astuce: parcourir les champs sémantiques du dictionnaire analogique en plusieurs langues pour mieux apprendre avec sensagent.
Dernières recherches dans le dictionnaire :
calculé en 0,078s
méthode d'analyse informatique[Classe]
programmation informatique[termes liés]
mathematics (en)[Domaine]
Procedure (en)[Domaine]
formula, rule (en)[Hyper.]
algorithmique[Dérivé]
mathematics (en)[Domaine]
Procedure (en)[Domaine]
algo, algorithme[Hyper.]
algorithme de tri (n. m.)
Un algorithme de tri est, en informatique ou en mathématiques, un algorithme qui permet d'organiser une collection d'objets selon un ordre déterminé. Les objets à trier font donc partie d'un ensemble muni d'une relation d'ordre (de manière générale un ordre total). Les ordres les plus utilisés sont l’ordre numérique et l'ordre lexicographique (dictionnaire).
Suivant la relation d'ordre considérée, une même collection d’objet peut donner lieu à divers arrangements, pourtant il est possible de définir un algorithme de tri indépendamment de la fonction d’ordre utilisée. Celui-ci ne fera qu'utiliser une certaine fonction d’ordre correspondant à une relation d’ordre qui doit permettre de comparer tout couple d'éléments de la collection.
Sommaire |
La classification des algorithmes de tri est très importante, car elle permet de choisir l’algorithme le plus adapté au problème traité, tout en tenant compte des contraintes imposées par celui-ci.
On distingue, tout d'abord, les algorithmes de tri d'application générale, procédant par comparaisons entre des paires d'éléments, et les algorithmes plus spécialisés faisant des hypothèses restrictives sur la structure des données entrées (par exemple, le tri par comptage, applicable uniquement si les données sont prises parmi un petit ensemble connu à l'avance). Si l'on ne précise rien, on entend habituellement par « algorithme de tri » un algorithme général de tri par comparaison.
Les principales caractéristiques qui permettent de différencier les algorithmes de tri sont : la complexité algorithmique, les ressources nécessaires (notamment en termes d'espace mémoire utilisé) et le caractère stable.
La complexité, généralement notée T, est exprimée en fonction du nombre n d'éléments à l'aide des notations de Landau : O et Θ. Pour certains des algorithmes de tri les plus simples, T(n) = O(n2), pour les tris plus élaborés, T(n) = O(n·log(n)).
On peut montrer que la complexité temporelle en moyenne et dans le pire des cas d’un algorithme basé sur une fonction de comparaison ne peut pas être meilleure que n·log(n). Les tris qui ne demandent que n·log(n) comparaisons en moyenne sont alors dits optimaux.
Le problème du tri consiste, étant donné une suite u = (u1, u2, ..., un) d’éléments d’un ensemble totalement ordonné (par exemple
), à déterminer une permutation σ de 1, ..., n telle que : y = (uσ(1), uσ(2), ..., uσ(n)) soit triée. On suppose pour simplifier que les éléments sont distincts, ce qui rend la permutation σ unique. Le résultat reste vrai a fortiori dans le cas général.
Un algorithme de tri par comparaisons successives se modélise comme un arbre binaire, chaque nœud de l'arbre correspondant à une comparaison entre deux éléments de l'ensemble. On compare deux éléments ui et uj, et en fonction du résultat, on passe à l'un des deux nœuds suivants, où l'on procède à une autre comparaison. Chaque feuille (nœud terminal) de l'arbre correspond à la suite totalement triée.
L'algorithme doit être en mesure de fournir toutes les possibilités de permutation des termes de la suite, car il est équivalent de fournir la permutation σ et de fournir la suite triée y. Le nombre de permutations de n éléments étant n ! (factorielle n) le nombre de feuilles de l'arbre doit être au moins n ! .
Borne inférieure pour la complexité dans le pire cas
Notons h la profondeur maximale de l'arbre (nous parlons bien d'un nombre d'étapes dans le pire des cas). Le nombre maximal de feuilles dans un arbre binaire de profondeur maximale h est de
.
Il vient donc :
. En utilisant la formule de Stirling, on obtient asymptotiquement
.
Le fait qu'il existe des tris en
montre d'autre part qu'il est possible d'avoir asymptotiquement
. Cette borne donne donc bien la complexité minimum dans le pire cas d'un algorithme de tri par comparaisons.
Borne inférieure pour la complexité en moyenne
Étant donné un arbre binaire A, on note F(A) la profondeur moyenne des feuilles de A. Si toutes les permutations des éléments en entrée sont équiprobables, alors le nombre moyen de comparaisons du tri avec un arbre de comparaisons A est égal à F(A).
Pour un nombre de nœuds fixé, les arbres minimisant F sont les arbres binaires complets (c'est-à-dire ceux dont toutes les feuilles sont au dernier ou à l'avant-dernier niveau). En effet, dans un arbre A non complet, il existe une feuille de profondeur h et une feuille de profondeur au plus h-2. En raccrochant la première feuille à la seconde, on obtient un arbre A’ tel que F(A’) < F(A).
La fonction F a la même valeur sur tous les arbres binaires complets à n! feuilles, Soit A l'un d'entre eux, notons h sa hauteur. Toutes les feuilles sont de profondeur au moins h-1, donc la profondeur moyenne des feuilles est au moins
(en utilisant à nouveau la propriété 2h≥n!).
Pour certains types de données (entiers, chaînes de caractères de taille bornée), il existe cependant des algorithmes plus efficaces au niveau du temps d'exécution, comme le tri comptage ou le tri par base. Ces algorithmes n'utilisent pas la comparaison entre éléments (la borne n·log(n) ne s'applique donc pas pour eux) mais nécessitent des hypothèses sur les objets à trier. Par exemple, le tri comptage et le tri par base s'appliquent à des entiers que l'on sait appartenir à l'ensemble [1, m] avec comme hypothèse supplémentaire pour le tri par base que m soit une puissance de 2 (c’est-à-dire de la forme 2k).
Un algorithme est dit en place s'il n'utilise qu'un nombre très limité de variables et qu’il modifie directement la structure qu’il est en train de trier. Ceci nécessite l’utilisation d'une structure de donnée adaptée (un tableau par exemple). Ce caractère peut être très important si on ne dispose pas d'une grande quantité de mémoire utilisable.
Remarquons toutefois qu'en général, on ne trie pas directement les données elles-mêmes, mais seulement des références (ou pointeurs) sur ces dernières.
Un algorithme est dit stable s'il garde l'ordre relatif des quantités égales pour la relation d'ordre.
Exemple, si on considère la suite d’éléments suivante :
(4, 1) (3, 2) (3, 3) (5, 4)
que l'on trie par rapport à leur première coordonnée (la clé), la seconde étant ici l'indice initial dans la suite, deux cas sont possibles, quand l’ordre relatif est respecté et quand il ne l'est pas :
(3, 2) (3, 3) (4, 1) (5, 4) (ordre relatif maintenu) (3, 3) (3, 2) (4, 1) (5, 4) (ordre relatif changé)
Lorsque deux éléments sont égaux pour la relation d'ordre (c’est-à-dire qu'ils ont la même clé), l'algorithme de tri conserve l'ordre dans lequel ces deux éléments se trouvaient avant son exécution. Les algorithmes de tri instables peuvent être retravaillés spécifiquement afin de les rendre stables, cependant cela peut être aux dépens de la rapidité et/ou peut nécessiter un espace mémoire supplémentaire.
Parmi les algorithmes listés plus bas, les tris étant stables sont : le tri à bulles, le tri par insertion et le tri fusion. Les autres algorithmes nécessitent O(n) mémoire supplémentaire pour stocker l'ordre initial des éléments.
Un tri interne s'effectue entièrement en mémoire centrale alors qu'un tri externe utilise des fichier sur une mémoire de masse pour trier des volumes trop importants pour pouvoir tenir en mémoire[1].
Certains algorithmes permettent d'exploiter les capacités multitâches de la machine[2].
Ces algorithmes sont lents pour plus de 20 éléments parce qu'ils sont en O(n2).
pour la série de pas
et
pour la série de pas
. On ne connaît pas de série donnant
.
en moyenne et dans le pire des cas, stable mais pas en place[3] ;
en moyenne, mais en
(quadratique) au pire cas[4], en place mais pas stable
dans tous les cas.
en moyenne et dans le pire des cas, en place mais pas stable. Toujours environ deux fois plus lent que le tri rapide, c'est-à-dire aux alentours de
, il est donc intéressant de l'utiliser si l'on soupçonne que les données à trier seront souvent des cas quadratiques pour le tri rapide ;
en moyenne,
dans le pire des cas. Ce tri est un des plus lents (parmi les tris rapides) et des plus gourmands en mémoire à cause de la structure d'arbre binaire à manipuler. Il est possible de le rendre
dans tous les cas en maintenant un arbre équilibré (Arbre AVL).
. Tri en place mais pas stableNote : on peut facilement obtenir la stabilité d'un tri si l'on associe à chaque élément sa position initiale. Pour cela, on peut créer un deuxième tableau de même taille pour stocker l'ordre initial (on renonce alors au caractère en place du tri).
mais l'algorithme effectue plus de copies et est plus compliqué au niveau de la programmationCette comparaison des algorithmes prend en compte le nombre d'accès en écriture dans le tableaux ainsi que le nombre de comparaison. Par exemple pour un tri simple avec 2 éléments, il y a une comparaison, et si échange il y a, deux accès en écriture. Les données à trier sont choisies aléatoirement et le temps moyen est calculé.
Avec ces critères, les algorithmes de tris en place les plus rapides sur des tableaux de moins de 40 éléments sont le tri de Shell et le tri rapide (quicksort). Si le tri par insertion est parmi les premiers pour moins de 10 éléments, sa complexité augmente rapidement au-delà. Le tri par tas est clairement le plus lent. Le smoothsort obtient une position intermédiaire.
Notes :
Lorsque l'on prend un nombre d'éléments moyen (entre 50 et 30 000), le tri en place le plus rapide est le tri rapide. La variante Sedgesort est légèrement plus rapide si l'on choisit bien la taille des petites listes, triées à la fin (ici au plus 8). Ensuite vient le tri de Shell qui n'est plus le plus rapide. Le smoothsort et le tri par tas changent de place. Enfin, la complexité du tri par insertion s'envole.
Avec un nombre d'éléments entre 30 000 et 6 000 000 d'éléments, les résultats sont sensiblement les mêmes que pour les tableaux moyens. L'optimisation de Sedgewick est légèrement plus intéressante même si le gain reste marginal. D'autre part, le tri par insertion, de même que le tri à bulles et le tri par sélection, sont beaucoup trop lents pour être utilisés dans ce cas.
| Sedgesort | Quicksort simple | Shellsort | Heapsort | Smoothsort | |
|---|---|---|---|---|---|
| Rapport | 1,8 | 1,9 | 2,8 | 3 | 4,1 |
, part de l'hypothèse que les données à trier sont réparties de manière uniforme sur un intervalle réel
.Les algorithmes de tri doivent aussi être adaptés en fonction des configurations informatiques sur lesquels ils sont utilisés. Dans les exemples cités plus haut, on suppose que toutes les données sont présentes en mémoire centrale (ou accessibles en mémoire virtuelle). La situation se complexifie si l'on veut trier des volumes de données supérieurs à la mémoire centrale disponible (ou si l'on cherche à améliorer le tri en optimisant l'utilisation de la hiérarchie de mémoire).
Ces algorithmes sont souvent basés sur une approche assez voisine de celle du tri fusion. Le principe est le suivant :
Dans les débuts de l'informatique, lorsque le coût des mémoires de type disques ou tambours magnétiques était très élevé, les algorithmes de tri pouvaient n'utiliser que la mémoire centrale et les dérouleurs de bandes magnétiques.
En l'absence de disque, il fallait au moins 4 dérouleurs de bandes pour pratiquer un tel tri. Avec 4 dérouleurs (b1, b2, b3, b4), les opérations étaient les suivantes :
En pratique, compte tenu de la fiabilité moyenne des équipements, on rencontrait donc fréquemment des salles machines avec 8 dérouleurs de bandes.
Toutes les traductions de Algorithme de tri