Je suis un cours d'introduction au c++ où nous apprenons à mettre en œuvre le mergesort. J'essaie de me guider à travers chaque étape du code, mais il y a un élément qui me fait trébucher :
1. void mergeSort(int *x, int len){
2. if (len>1){
3. int newLen=len/2;
4. mergeSort(x, newLen);
5. mergeSort(x+newLen,len-newLen);
6. int *newSeq;
7. newSeq=new int[len];
8. mTwoSeq(x, x+newLen, newSeq,newLen, len-newLen);
9. for(int i=0;i<len;++i){
10. x[i]=newSeq[i];
11. }
12. delete[] newSeq;
13. }
14. }
Que se passe-t-il à la ligne 5 ? Si j'ai bien compris, lorsque nous appelons "x+i", où x est un tableau de pointeurs, nous demandons à l'ordinateur de nous donner l'adresse du morceau de mémoire qui contient le ième élément de données. Si c'est le cas, je ne suis pas tout à fait sûr de savoir comment cela s'intègre ici. Si quelqu'un sait ce qui se passe dans cet appel de fonction, je serais très heureux de le savoir. Merci !