CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Haskell] Quicksort

[denshaotoko]
[denshaotoko]
Niveau 25
29 août 2014 à 20:56:07

Bonjour,

je debute avec Haskell en suivant ça http://lyah.haskell.fr/

et il y a quelques petits truc que je ne comprends pas

:d) si j'ai bien compris, pour moi il y a une erreur ici :
http://lyah.haskell.fr/recursivite#vite-triez

en utilisant les listes en compréhension, pour le premier prédicat j'aurai plutôt mis "a < x" au lieu de "a <= x", sinon il y a répetition du pivot non?
puisque on va concatener le pivot avec la liste trier à gauche qui contiendra le pivot aussi puisqu'elle respecte le prédicat a <= x

:d) et ici aussi (un peu en bas dans l'exemple avec quicksort) : http://lyah.haskell.fr/fonctions-d-ordre-superieur#maps-et-filtres

cette version avec filter pareil
j'aurai plutôt mis

quicksort (filter (<x) xs)

au lieu de

quicksort (filter (<=x) xs)

sinon comme dit plus haut, il y aurait répetition du pivot

mais par contre, j'ai bien conscience que si je ne met pas <= x ça ne sélectionnera pas les doublons dans la liste (ceux égale au pivot) ce qui fera une liste sans doublons si on la trie, ce qui pose probleme aussi

donc dans les deux cas je ne vois pas quelle serait la bonne solution qui fonctionnerait sans doubler le pivot et sans virer tout les doublons

Merci d'avance pour vos futures réponses

---
P.-S: avez-vous de bonne référence à me conseiller sur ce langage ?

Lowenheim
Lowenheim
Niveau 10
29 août 2014 à 21:36:14

en utilisant les listes en compréhension, pour le premier prédicat j'aurai plutôt mis "a < x" au lieu de "a <= x", sinon il y a répetition du pivot non?

:d) Non, justement.
Quand tu écris "quicksort (x:xs) =", la liste que tu as en entrée est déjà décomposée en tête (x) et queue (xs).
Autrement dit, ton pivot x ne fait pas partie de la liste xs.

[denshaotoko]
[denshaotoko]
Niveau 25
29 août 2014 à 21:46:28

purée mais oui évidemment, j'avais totalement zappé
merci

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment