Giải đáp thắc mắc cách tính độ phức tạp (BigO) của thuật toán trong ví dụ cho em học viên

Поділитися
Вставка
  • Опубліковано 9 січ 2025

КОМЕНТАРІ •

  • @truongquang8568
    @truongquang8568 Рік тому +3

    chết nhọc với ô học viên này thôi, như ngái ngủ chỉ thấy thầy nhiệt tình quá, cảm ơn thầy, đi học thì mang ơn thầy thì cố tập trung với hồi đáp thầy nhiệt lên chút, lớn rồi mà vẫn tồ

    • @CongNguyen-fi5cd
      @CongNguyen-fi5cd 10 місяців тому

      nó trả lời giốg bố đời quá

  • @TranQuocCuongFGWHN
    @TranQuocCuongFGWHN Рік тому

    Cảm ơn anh ạ, bài giảng thực sự quá dễ hiểu, một người thầy có tâm. Chúc anh anh luôn thành công và hạnh phúc trong cuộc sống ạ.

  • @cuongnguyenxuan1246
    @cuongnguyenxuan1246 3 роки тому +8

    quá dễ hiểu, một bài giảng bổ ích

  • @nguyenhuyhoang8833
    @nguyenhuyhoang8833 2 місяці тому

    nói đến vòng for có 2 phép so sánh với gán là hiểu ngay thank a

  • @tranhieu133
    @tranhieu133 3 роки тому +1

    trời em coi clip tây clip tàu đủ cả chỉ vì cái big0, omg cảm ơn anh đã hiểu

  • @hoasung01
    @hoasung01 Рік тому +2

    cảm ơn bác, bài giảng rất dễ hiểu

  • @NeiTz68
    @NeiTz68 Рік тому +1

    Tks a
    A giảng rất dễ hiểu ạ

  • @brianhuynh
    @brianhuynh Рік тому +2

    Cái thằng học viên thầy dạy mà đầu óc nó buồn ngủ hay k tập trung vậy trời. Chúc anh(thầy) sức khoẻ.

  • @phongle2284
    @phongle2284 10 місяців тому

    anh chàng giảng bài dể thương quá :B

  • @hainamvu4271
    @hainamvu4271 5 днів тому

    hay quá , em cảm ơn anh

  • @DungNguyen-pc9hr
    @DungNguyen-pc9hr 2 роки тому +1

    bác này nói dễ hiểu ghê

  • @jikei257._
    @jikei257._ Рік тому

    cảm ơn anh video rất bổ x.

  • @nguyentram1601
    @nguyentram1601 2 роки тому +4

    anh có thể cho em xin file này để tham khảo không anh ?

  • @buuien4592
    @buuien4592 Рік тому

    em cảm ơn thầy, 3 thằng em hiểu rồi

  • @daily-emotions-179
    @daily-emotions-179 Місяць тому

    phép tính của bạn đang sai chỗ là 2 + 2n + 3*n mới đúng(sai: 2 + 2n * 3*n...)

  • @tamnguyen-fk2tn
    @tamnguyen-fk2tn 2 роки тому +1

    rất dễ hiểu

  • @pghthanglongcement
    @pghthanglongcement 3 роки тому

    trân trọng cảm ơn anh

  • @luannguyen-xs7wv
    @luannguyen-xs7wv 2 роки тому +2

    tại sao thuật toán 2 ghi cái thời gian chạy là n(n+1)/2 , O(n^2) nhỉ trong khi tính ra là có 5N+2 tức là O(n) = n thôi mà

  • @manhnguyenvan7143
    @manhnguyenvan7143 2 роки тому +1

    Cảm ơn a

  • @Studynam
    @Studynam Місяць тому

    cảm ơn anh

  • @huynhuctruong7201
    @huynhuctruong7201 3 роки тому +1

    khóa học này ok v

  • @mylinhtrinh6495
    @mylinhtrinh6495 3 роки тому +3

    anh cho em hỏi tại sao dòng 5 ở thuật toán 2 lại thực hiện 3N lần mà không phải N lần ạ? em cảm ơn anh

    • @SillyLeizy
      @SillyLeizy 3 роки тому

      Mình đang hiểu vì vế N + 1 - i thì tốn 2 phép toán, thêm phép gán cho sum nữa là 3 nên đoạn đó sẽ là 3N

    • @duahaugaming8715
      @duahaugaming8715 3 роки тому

      theo mình thì vế phải có N và i, phép toán ở trong vòng lặp chạy n lần nên mỗi giá trị này phải gán nhiêu đó lần á

    • @TanTran-ws4fr
      @TanTran-ws4fr Рік тому

      @@duahaugaming8715 vế phải là sum + N + 1 + i b ơi , mình mới học cũng chưa hiểu

    • @minhvuongvo067
      @minhvuongvo067 Рік тому

      Cái này là vì đoạn operation này có 3 phép toán, phép toán (sum + N + 1 - i), phép toán gán giá trị cho i và phép toán gán trị của sum + N +1 - i cho sum nhé

  • @ĐỗĐìnhDiệm
    @ĐỗĐìnhDiệm Рік тому

    Ông hỏi này có phải tên Trường k a

  • @thuydungnguyen8596
    @thuydungnguyen8596 2 роки тому +1

    trường utehy hả anh?

  • @khanhdaoba
    @khanhdaoba 3 роки тому +2

    Cho em hỏi dòng 4 tại sao không phải (2N + 1) ạ. Vì i = 1 cũng là 1 lần thực hiện chứ ạ.

    •  3 роки тому +2

      Vì nó không đáng kể nên không tính vô đó em

    • @khanhdaoba
      @khanhdaoba 3 роки тому +1

      @ cảm ơn anh ạ

    • @baonguyenvan7651
      @baonguyenvan7651 3 роки тому +26

      Theo mình thì vẫn đúng 2N, vì sao?
      lần 1: khởi tạo i =1 và so sánh i cái này là 2 phép tính
      lần 2 -> lần n: mỗi lần i++ và i mỗi lần ở đây vẫn là 2 phép tính
      nên tổng vẫn là 2N

    • @hieutrinhminh7851
      @hieutrinhminh7851 2 роки тому

      @@baonguyenvan7651 Cảm ơn bạn !

    • @giaple5032
      @giaple5032 Рік тому

      @@baonguyenvan7651 theo mình thì vẫn còn thiếu vì
      lần n+1: thì i++ sau đó kiểm tra i

  • @thanhnguyentien298
    @thanhnguyentien298 Рік тому

    nếu vòng lặp for j =i thay đổi thành for j=1 thì độ phức tạp nó sẽ là 2N hay vẫn giữ nguyên như clip bác ơi

    • @decon.
      @decon. 10 місяців тому

      j = 1 thì nó là 2N

  • @fromsomeonewithlove
    @fromsomeonewithlove Рік тому

    Anh có thể cho em xin file được kh ạ

  • @tuanah5651
    @tuanah5651 9 місяців тому

    cho ưm xin cái slide đi

  • @journeystv5332
    @journeystv5332 3 роки тому +2

    Anh ơi cho em hỏi, tại sao có vòng lặp for con gắn biến j vậy, em mới học chưa hiểu lắm, anh giải thích giúp em, em cảm ơn

    • @minhtran-uv4nd
      @minhtran-uv4nd 3 роки тому

      Học đến bài mảng 2 chiều sẽ dùng vòng lập j này để giải quyết . Mà tùy theo bài toán mình có thể dùng bao nhiều vòng lập lồng nhau cũng được cũng được . for cha { for con { for cháu { for chắt { for chít } } } }

    • @decon.
      @decon. 10 місяців тому

      @@minhtran-uv4nd thường người ta lồng 2 for thôi. chứ 3 - 4 for thì code chạy đến năm sau chưa xong

  • @hungnguyen-rw3vu
    @hungnguyen-rw3vu 8 місяців тому

    cho e hỏi là kiểu nếu đoạn code nào mà có 2 vòng lặp lồng nhau thì độ phức tạp của nó lúc nào cũng là 0(n^2) ạ. mong anh giải đáp giúp em sớm nhất ạ

    • @hungtinvo264
      @hungtinvo264 8 місяців тому +1

      Theo tui hiểu, thì tuỳ nha ông, nhưng hầu hết trường hợp thì sẽ là vậy, cái time complexity này nó phụ thuộc vào input size và basic operation của ông. Trước tiên ông phải xác định 2 khái niệm đó đã. Vì trong ví dụ thuật toán 1, 2 cái vòng for nó chạy dựa input size n, tức là n ông tăng lên, 1000 hay 10000 hay 1tr, thì nó sẽ ảnh hưởng lên thời gian chạy của vòng lặp đó. Còn ví dụ for ông cho chạy tới 1 số cố định, ví dụ từ 1 tới 1000 đi, là cái input nó ko đổi, thì không phải là O(n^2) nhé.

    • @hungtinvo264
      @hungtinvo264 8 місяців тому

      Ông có hứng thú thì ib, tui gửi slide tui học cho ông đọc, nó rõ ràng hơn cái slide bài giảng này.

    • @hungnguyen-rw3vu
      @hungnguyen-rw3vu 8 місяців тому

      @@hungtinvo264 cảm ơn ông nhé , tui đang ôn thi cấu trúc dữ liệu và giải thuật ý mà 😊

    • @hungtinvo264
      @hungtinvo264 7 місяців тому

      @@hungnguyen-rw3vu gì đâu ông :)) ông ôn ko, tui gửi tài liệu cho.

    • @camlinhvonguyen1930
      @camlinhvonguyen1930 20 днів тому

      @@hungtinvo264t ké vớiii

  • @vandong-m3p
    @vandong-m3p Рік тому

    Ví dụ vòng lặp for đâu tiên i =0 thì sao anh

    • @hieunguyenxuan9217
      @hieunguyenxuan9217 Рік тому

      thì số lần lặp là n+1 lần. Nhưng độ phức tạp của thuật toán cũng chỉ lấy giá trị cao nhất nên vẫn sẽ là O(N) với 1 vòng for, và O(N^2) với 2 vòng for.

  • @vietanhhoang2642
    @vietanhhoang2642 3 роки тому +1

    thuật toán 3 tại sao sum = N(N+1)/2 lại bằng 4 vậy ạ

  • @catorlife
    @catorlife Рік тому

    tại sao chỉ tính là 2: một phép gán,một phép so sánh mà không phải là 3 ở cái chỗ i++ luôn nhỉ?

    • @duongpham6112
      @duongpham6112 Рік тому

      sao lại là 3. nhìn kỹ lại xem sau khi khởi tạo gán i = 1 xong nó có quay lại khởi tạo lần nào nữa không. có 1 cách khác là khai báo i bên ngoài, chỗ khởi tạo bỏ trống như sau: int i = 1; for( ; i

    • @DuongDuongVietsub
      @DuongDuongVietsub Рік тому +2

      hiểu đơn giản là bước 1 nó gán i = 1 rồi so sánh (không có phép i++), các bước sau là nó i++ rồi so sánh (không có phép gán i = 1)
      toàn bộ các bước chỉ có 2 phép tính toán nên là 2N

  • @Thayanhchamsoccoay
    @Thayanhchamsoccoay 8 місяців тому

    cái vòng lặp đầu là có assignment là 1 rồi kiểm tra i

    • @chillwithme145
      @chillwithme145 7 місяців тому

      minh cung nghi giong nhu ban vi phai chay toi n + 1 thi moi thoat vong lap dc chu

    • @daivshow4574
      @daivshow4574 6 місяців тому

      ​@@chillwithme145 i=0 thì mới chạy n+1 lần chứ nhỉ , trong vid i=1 thì vd n=3 nó chỉ 3 lần là i thoát rồi

    • @lethuanphat8220
      @lethuanphat8220 6 місяців тому

      @@daivshow4574 nó còn th n=3 để xem 3 có nhỏ hơn n k, vậy tổng có n+1 lần á

  • @minhnguyendang8900
    @minhnguyendang8900 2 роки тому +1

    Thuận toán 1 ở vòng for i là 2*n(n+1)/2 mới ta, sao lại 2n nhỉ

    • @nttam.ntt0312
      @nttam.ntt0312 Рік тому

      2*n*(n+1)/2 đấy là của vòng j, chứ i thì 2n là đúng (2n do i 2n

  • @cnv1851
    @cnv1851 3 місяці тому

    thèn học viên trả lời sao bố láo vậy

  • @quanphan7337
    @quanphan7337 2 роки тому +2

    cái thằng học viên bị j ấy nhỉ ổng hỏi liên tục mà ko trả lời