Complexité d'un algorithme: définition et exemple | Rachid Guerraoui

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ม.ค. 2025

ความคิดเห็น • 36

  • @jeremiematin
    @jeremiematin 9 ปีที่แล้ว +1

    Excellente vidéo. Simple et didactique. Merci.

  • @Raf4le
    @Raf4le 5 ปีที่แล้ว +2

    Très bien expliqué, merci.

  • @mohamedabderrahimjiddou4629
    @mohamedabderrahimjiddou4629 ปีที่แล้ว

    Merci beaucoup !

  • @erwanvinet3218
    @erwanvinet3218 2 ปีที่แล้ว

    merci roulhya

  • @nazihamarref3018
    @nazihamarref3018 7 ปีที่แล้ว +13

    la recherche d'un élément x dans une liste est linéaire ( de l'ordre de n ) et non pas n^2 ( on parcout la liste une seule fois , donc le pire des cas , on fait n tests )

    • @agabaga4886
      @agabaga4886 5 ปีที่แล้ว

      En fait, ceci n'est qu'une théorie personnelle, mais je crois que le résultat exprimé dans la vidéo est en effet juste. Cela est du à la boucle "jusqu'à" qui est utilisée car elle force à compter le nombre d'éléments dans la liste. Par contre, habituellement, lorsque l'on fait une recherche séquentielle, on a tendance à connaitre le nombre d'éléments figurant dans la liste avant de commencer. Cela permet d'alléger la tâche du processeur.

    • @guerindimo2481
      @guerindimo2481 2 ปีที่แล้ว

      pour répondre à ta question, la complexité dépend de l'algorithme utilisé pour ressourdre un problème et non du problème à ressourdre

  • @guerindimo2481
    @guerindimo2481 2 ปีที่แล้ว

    excellente vidéo et merci. sinon j'ai deux(2) questions, la condition de la boucle(i>taille(L)) ne sera pas exécuté n+1 fois? différemment du contenu de la boucle qui est exécuté n fois(biensure dans le pire des cas, ou l'on ne trouve pas l'élément dans le tableau) et pourquoi n'avez vous pas calculé(toujours pour i>taille(L)) l'exécution du comparateur(>) et l'exécution de la taille(c.-à-d. 1 +1) comme fait dans l'algorithme 2

  • @nouamaneelgueddari6634
    @nouamaneelgueddari6634 6 ปีที่แล้ว

    le test de (i< taille de tab) sera répété 1 fois à chaque iteration alors ça va donner n , non pas n*2 et merci

    • @razzorback
      @razzorback 6 ปีที่แล้ว

      n*2 est du à la fonction taille(l) car elle effectue n opération pour savoir la taille il a dit justement. du coup sa fait qu'il va répéter les 2 opération + taille(l) qui fait n opération, n fois. ce qui fait n*2 + 2n

  • @xavierartot
    @xavierartot 11 ปีที่แล้ว +7

    Bonjour,
    Dans R1(x,L)
    Comment transformez-vous ?
    1 + (1 + 1 + n) n
    Je devine que cela represente les deux boucles ?
    n2 + 2n + 1
    Merci

    • @nazihamarref3018
      @nazihamarref3018 7 ปีที่แล้ว

      oui , je suis d'accord avec vous

    • @nouranetabka3035
      @nouranetabka3035 6 ปีที่แล้ว

      il a utilisé dans le premier algorithme un boucle while.. Traduit cette écriture algorithmique en un langage de programmation C ou python ou n'importe quel langage , tu pourras alors déduire comment il l'a trouvé ;)

  • @ahmedb2559
    @ahmedb2559 3 ปีที่แล้ว

    Merci !

  • @hervediedie
    @hervediedie 4 ปีที่แล้ว +1

    vous êtes sûr qu'avec ça un élève moyen peut comprendre la notion de complexité

    • @JL_987
      @JL_987 10 หลายเดือนก่อน

      Non toujours pas ça a toujours été du chinois pour moi

  • @yasineziane-khodja4558
    @yasineziane-khodja4558 4 ปีที่แล้ว +1

    Pour calculer la complexité d'un algo il faut d'abord calculer le nombre d'opérations élémentaire. D'après le premier exemple R1 tu n'as pas pris en considération pour le calcul de la complexité, la consultation d'un élément dans un tableau et opération arithmétique

    • @racontemoi4682
      @racontemoi4682 3 ปีที่แล้ว

      Exactement c'est ce pourquoi je suis venu dans les commentaires pour voir si quelqu'un a remarque la meme chose

  • @nouranetabka3035
    @nouranetabka3035 6 ปีที่แล้ว

    5:25 s'il vous plait j'ai pas compris pourquoi t'as mis n en principe c'est une affectation , on doit alors mettre 1 non ?

    • @razzorback
      @razzorback 6 ปีที่แล้ว

      C'est parce qu'il compte la fonction taille(l) qui fait n opération pour savoir la taille. D’ailleurs au R1 il a aussi compter la fonction taille(l)

  • @manthel4609
    @manthel4609 9 ปีที่แล้ว

    La complexité pour une recherche dans une liste est linéaire au départ.

  • @nap6793
    @nap6793 9 ปีที่แล้ว

    Slt à vous, merci pr vos explications.Concernant le calcul du R2: Vous dites q l'exécution de: pour i allant se 1 à t {si x=L(i)..}
    comment il en resulte:...n(2).. alors q l calcul à R1 ns avions l'execution similaire c'est-à-dire : ..si x= L(i)...: et ici il en resulte 1 comme execussion?
    Merci

    • @ayoubayoub-ym5qh
      @ayoubayoub-ym5qh 9 ปีที่แล้ว

      +Na P oui c est ça ce que j ai pas compris :(

    • @missemmatjep
      @missemmatjep 8 ปีที่แล้ว +1

      Je ne suis pas sûr d'avoir compris votre question, mais je tente : la différence entre les deux cas est la suivante : si l'on regarde le pire cas imaginable dans R1, il faudra atteindre i = taille(L). Le problème dans cet algorithme est qu'a chaque fois que la boucle se répète, il faut recalculer la taille(L) et vu qu'on est dans le pire cas possible, la boucle se répétera un nombre de fois égal à taille(L). Ainsi, on a taille(L)*taille(L) (=> taille(L)^2) ce qui est représenté par le n^2.

    • @ROUROU1982
      @ROUROU1982 8 ปีที่แล้ว

      Emma Tjepkema merci, c'est en lisant ce commentaire que je suis parvenu à comprendre la R1, j'avais pas compris pourquoi on a mis un n pour l'instruction de jusqu'à, en effet dans la vidéo l'omission du mot "recalcul" de la taille de la liste s'est fait sentir

    • @nacereddinekharfallah4309
      @nacereddinekharfallah4309 6 ปีที่แล้ว

      Je suis avec; pour quoi vous avez comptez dans R1 "x=L(i)" comme une seule opération, par contre dans R2 vous avez comptez comme 2 opérations ((x = ...) et (L(i))) => normalement 1 se qui donne Rc2 = n + n(1) = 2n ? Merci pour cette vidéo.

  • @harryspring8303
    @harryspring8303 4 ปีที่แล้ว +1

    Pas bien compris le cas de CR1(n)

  • @yasminesalahi5022
    @yasminesalahi5022 5 ปีที่แล้ว +2

    j ai rien compris

  • @fentoussereda9172
    @fentoussereda9172 8 ปีที่แล้ว +1

    quell eat la complexite de ce algorithme
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    public class hanoi {
    static int s=1;
    static int n;
    public static void hanoi(int n, String from, String temp, String to) {
    if (n == 0) return;
    hanoi(n-1, from, to, temp);
    System.out.println("Step "+(s++)+ " : Move the disc " + n + " from " + from + " to " + to );
    hanoi(n-1, temp, from, to);

    }
    public static void main(String[] args) {
    JFrame f = new JFrame("Honoi");
    JPanel p = new JPanel();
    JPanel p1 = new JPanel();
    JPanel p2 = new JPanel();
    JPanel p3 = new JPanel();
    JPanel p4 = new JPanel();
    JPanel p5 = new JPanel();
    JLabel g1 = new JLabel(" how mach disc =");
    JLabel g = new JLabel(" HONOI");
    JButton b = new JButton("OK");
    JButton b1 = new JButton("Quit");
    JTextField t = new JTextField();
    p.setLayout(new BorderLayout());
    p1.setLayout(new BorderLayout());
    p2.setLayout(new BorderLayout());
    p3.setLayout(new BorderLayout());
    p4.setLayout(new BorderLayout());
    p5.setLayout(new BorderLayout());

    p.add(g,BorderLayout.NORTH);
    p.add(p2,BorderLayout.CENTER);
    p2.add(p5,BorderLayout.CENTER);
    p5.add(p1,BorderLayout.SOUTH);
    p1.add(g1,BorderLayout.CENTER);
    p1.add(t,BorderLayout.SOUTH);
    p.add(p3,BorderLayout.AFTER_LAST_LINE);
    p3.add(b1,BorderLayout.AFTER_LAST_LINE);
    p3.add(b);
    b.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
    n=Integer.valueOf(t.getText());
    hanoi(n, "A", "B", "C");
    }
    }
    );
    b1.addMouseListener(new MouseAdapter(){
    public void mouseClicked(MouseEvent e){
    System.exit(0);
    }
    }
    );

    f.setContentPane(p);
    f.setSize(400,200);
    f.setVisible(true);
    }
    }

  • @_rachid
    @_rachid 8 ปีที่แล้ว +13

    C'est pas bien expliqué.

  • @Jojolebobomomo
    @Jojolebobomomo 7 ปีที่แล้ว +1

    Tin cette video aussi elle est pas clair

  • @fatimaezzahranaima3753
    @fatimaezzahranaima3753 4 ปีที่แล้ว

    j'ai rien compris

  • @nouamaneelgueddari6634
    @nouamaneelgueddari6634 6 ปีที่แล้ว +9

    tres mal expliqué et merci

  • @lagiti834
    @lagiti834 6 ปีที่แล้ว +1

    Du n'importe quoi!!!

  • @nasrianis2954
    @nasrianis2954 5 ปีที่แล้ว

    c'est faux !!!!

  • @mohamedabderrahimjiddou4629
    @mohamedabderrahimjiddou4629 ปีที่แล้ว

    Merci beaucoup !