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

[Pascal] prb compréhension procédure

sd460
sd460
Niveau 10
30 avril 2005 à 18:22:56

http://dellse.free.fr/info.jpg

cette procédure s´inscrit dans mon cours " tri ( de tableaux)"

" r" est le numéro d´indexation de la dernière case du tableau considéré.
" l" est la première.

j´ai un peu du mal à comprendre son fonctionnement :
je ne retrouve pas la structure " habituelle" pour une procédure récursive ( enfin habituelle pour moi ^^) : c´est à dire on pose les conditions ( if . ..) et ensuite on lance la récursivité qui nous fera retomber sur un cas évoqué dans les conditions.

Là que va faire la préocdure après mergesort(l,m);mergesort(m+1,r); ?

le_duche
le_duche
Niveau 10
01 mai 2005 à 19:20:03

je suis au cyber donc j´ai pas turbo pascal sous la main mais c´est vrai qu´elle est pas très belle cette procédure... et puis un truc pareil faut le commenter nom de D... !

Il arrivera bien un moment ou le programme devra ressortir des procédures ou il est entré ( soit qu´il a executé tout le if, soit que la condition n´est pas remplie) à ce moment il executera les for qui bidouillent les tableaux a et b...

J´vais essayer de comprendre ce qu´elle fait mais je promet pas...

djspit
djspit
Niveau 3
01 mai 2005 à 21:33:08

Une recherche sur notre ami Google " mergesort" et on voit rapidement que c´est un algorithme de tri de tableau par la technique " tri-fusion" ou " diviser pour régner"...!?
Apparemment ça divise le tableau en petits tableaux jusqu´a arriver à avoir un seul element dans les petits tableaux...
J´espere que c´est efficace parce qu´elle galere le truc ! !
Des commantaires seraient bien venus en effet, d´ailleur les tableaux a et b sortent d´on ne sait où ! !

dnob700
dnob700
Niveau 10
02 mai 2005 à 11:57:54

bah la procédure est asez simple ce qui est très moche c´est le deux for au millieu :
en fait la procédure coupe le tableau en deux, le tri récursivement par la même fonction tant qu´il reste des éléments dans le tableau puis va fusionné les deux moitié déjà trié. mais le problème est que la gestion des tableau n´est pas optimisé donc les tableau fusionné sont dans a, il faut les recopié dans b et ensuite on peut les refusionné une nouvelle fois dans a.

après on a fini bien sur lorsque tout les niveau de récursivité sont achevé.

le_duche
le_duche
Niveau 10
02 mai 2005 à 19:55:32

Tout ce que j´ai trouvé c´est qu´elle réorganise le tableau a[] entre l et r dans l´ordre croissant.
Mais je comprend pas le fonctionnement...
je sais pas comment on fait mais je crois pas que je ferais comme ca...

le_duche
le_duche
Niveau 10
03 mai 2005 à 13:20:26

Wep j´ai compris !

En fait la procédure commence par diviser le tableau en deux et elle les reclasse chacun dans l´ordre croissant. Ensuite elle copie la première partie dans le début du b ( qui a la meme longueur) et la deuxième partie dans l´ordre inverse dans la fin de b
ensuite elle prend successivement les plus petits éléments dans les deux parties de b et les replace dans l´ordre dans a.

Lorsque la procédure se retrouve face à un tableau avec deux éléments, c´est évident...

sd460
sd460
Niveau 10
04 juin 2005 à 22:38:52

ok merci !

je n´en avais pas eu besoin jusqu´à maintenant, et comme je n´ai pas l´habitude de venir sur ce forum, cela explique mon silence ( ba oui, ca se fait de remercier quand meme!)

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