Le tri Radix est théoriquement très rapide lorsque vous savez que les clés sont dans une certaine plage limitée, disons valeurs dans la plage [ 0 … n k - 1 ] par exemple. Si k < lg n, vous venez de convertir les valeurs en base n, ce qui …
Je recherche un algorithme de tri pour les tableaux int qui n'alloue aucun octet autre que la taille du tableau et est limité à deux instructions: SWAP: échange le prochain index avec celui en cours; MOVE: déplace le curseur sur un index +1 ou -1; Autrement dit, vous ne pouvez …
Considérez le problème suivant: Entrée: deux tableaux et de longueur , où est trié.AAABBBnnnBBB Question: ne et contiennent les mêmes éléments (avec leur multiplicité)?AAABBB Quel est l' algorithme déterministe le plus rapide pour ce problème? Peut-il être résolu plus rapidement que de les trier? Ce problème peut-il être résolu en …
Comment puis-je trier une liste de 5 entiers de telle sorte que dans le pire des cas, il faut 7 comparaisons? Je me fiche du nombre d'autres opérations qui sont effectuées. Je ne sais rien de particulier sur les entiers. J'ai essayé différentes approches de division et de conquête qui …
Le tri rapide aléatoire est une extension du tri rapide dans lequel l'élément pivot est choisi au hasard. Quelle peut être la pire complexité temporelle de cet algorithme. Selon moi, ce devrait être , car le pire des cas se produit lorsque le pivot choisi au hasard est sélectionné dans …
Dans leur livre Randomized Algorithms , Motwani et Raghavan ouvrent l'introduction avec une description de leur fonction RandQS - Randomized quicksort - où le pivot, utilisé pour partitionner l'ensemble en deux parties, est choisi au hasard. J'ai accumulé mes cerveaux (certes un peu sous-alimentés) pendant un certain temps, mais je …
L'algorithme de tri rapide peut être divisé en étapes suivantes Identifiez le pivot. Partitionnez la liste liée en fonction du pivot. Divisez la liste chaînée récursivement en 2 parties. Maintenant, si je choisis toujours le dernier élément comme pivot, alors l'identification de l'élément pivot (1ère étape) prend du temps .O(n)O(n)\mathcal …
L'année dernière, je lisais un article fantastique sur «La mécanique quantique pour les jardins d'enfants» . Ce n'était pas du papier facile. Maintenant, je me demande comment expliquer le tri rapide dans les mots les plus simples possibles. Comment puis-je prouver (ou au moins une onde de main) que la …
Supposons deux listes d'éléments comparables: u et s. Soit INV (u) le nombre d'inversions dans u. Je recherche un algorithme efficace pour insérer les éléments de s dans u avec une augmentation minimale de INV (u). Fondamentalement, je voudrais insérer des objets dans une liste tout en la gardant "aussi …
Une liste de nnn éléments peut être vérifiée comme triée en comparant chaque élément à son voisin. Dans mon application, je ne pourrai pas comparer chaque élément avec son voisin: au lieu de cela, les comparaisons se feront parfois entre des éléments distants. Étant donné que la liste contient plus …
Est-il possible d'utiliser un algorithme de tri avec une comparaison non transitive, et si oui, pourquoi la transitivité est-elle répertoriée comme exigence pour le tri des comparateurs? Contexte: Un algorithme de tri trie généralement les éléments d'une liste selon une fonction de comparaison C (x, y), avec C( x , …
Étant donné un tube avec des boules numérotées (aléatoire). Le tube a des trous pour retirer une balle. Considérez les étapes suivantes pour une opération: Vous pouvez choisir une ou plusieurs balles dans les trous et vous souvenir de l'ordre dans lequel vous avez choisi les balles. Vous devez incliner …
Étant donné un tableau de entiers, chaque élément du tableau peut être augmenté d'un nombre fixe avec une certaine probabilité , 0 \ leq i <n . Je dois trouver le nombre attendu de swaps qui auront lieu pour trier le tableau à l'aide du tri à bulles .AAANNNbbbp[i]p[i]p[i]0≤i<n0≤i<n0 \leq …
Le tri par fusion est donc un algorithme de division et de conquête. Pendant que je regardais le diagramme ci-dessus, je me demandais s'il était possible de contourner fondamentalement toutes les étapes de division. Si vous parcourez le tableau d'origine en sautant de deux, vous pouvez obtenir les éléments à …
Considérant ce pseudo-code d'une bulle: FOR i := 0 TO arraylength(list) STEP 1 switched := false FOR j := 0 TO arraylength(list)-(i+1) STEP 1 IF list[j] > list[j + 1] THEN switch(list,j,j+1) switched := true ENDIF NEXT IF switched = false THEN break ENDIF NEXT Quelles seraient les idées de …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.