#7 [C++]. Phân Tích Độ Phức Tạp Của Thuật Toán | Độ Phức Tạp Tính Toán Của Thuật Toán

  Рет қаралды 114,807

28tech

28tech

Күн бұрын

Пікірлер: 99
@28tech_
@28tech_ 2 жыл бұрын
Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/
@Ta-sz2ip
@Ta-sz2ip 3 жыл бұрын
Công đức vô lượng anh ơi, giảng bài hay và nêu rõ ràng không bỏ qua cho dù dễ hiểu thế nào, đôi lúc người khác giảng bị hiệu ứng lời nguyền kiến thức khiến em bị kẹt chứ ở anh rất thoải mái.
@28tech_
@28tech_ 3 жыл бұрын
Tính ra mình bỏ nhiều phần đấy, chỉ nói phần chính thôi, chứ lan man 1 hồi thì cũng chả đọng lại gì vì lượng thông tin quá nhiều :D
@Ta-sz2ip
@Ta-sz2ip 3 жыл бұрын
@@28tech_ thực ra đúng là vậy khi xem vài video khác, nhưng em cảm thấy anh làm video trên tinh thần dạy cho các bạn học có sự tận tâm hơn. Nhiều người làm video dạy về hàm có thể cô đọng trong 10', nhưng mà họ phải có nhiều kiến thức hơn để thực sự hiểu 10' đó, còn người xem chỉ hiểu đc chút thôi. Nhiều thứ tuy nhỏ, nhưng nó lại có điểm chung, bổ sung, đối ứng nhau, hiểu cái này thì mới hiểu cái kia, vậy nên lan man cũng tốt.
@duynghiem8822
@duynghiem8822 3 жыл бұрын
Bài giảng hay quá ạ
@28tech_
@28tech_ 3 жыл бұрын
C++ mình còn ít về con trỏ vs hướng đối tượng nữa là xong rồi :D
@duongvankieu4828
@duongvankieu4828 2 жыл бұрын
Đánh giá độ phức tạp bài này giúp em với a Procedure binary search (x: nguyên, a1, a2, ... an: các số nguyên tăng dần) i := 1 {i là điểm mút trái của khoảng tìm kiếm} j := n {j là điểm mút phải của khoảng tìm kiếm} while 𝑖 < 𝑗 begin m := (𝑖 + 𝑗)/2 if 𝑥 > 𝑎 𝑚 then i:= m + 1 else j:= m end if x = a then location :=i else location :=0 { location là chỉ số của số hạng bằng x hoặc là 0 nếu không tìm được x}
@28tech_
@28tech_ 2 жыл бұрын
Độ phức tạp của binary search là logN em nhé. Nó cứ chia 2 dần dần mà nên số vòng lặp của thuật toán là log2(n)
@duongvankieu4828
@duongvankieu4828 2 жыл бұрын
@@28tech_còn trường hợp xấu nhất của nó sẽ là gì anh!~~
@28tech_
@28tech_ 2 жыл бұрын
@@duongvankieu4828 logN là xấu nhất rồi đấy.
@BangNguyen-hd6sk
@BangNguyen-hd6sk 16 күн бұрын
link ông làm về thuật toán die rồi a ơi, a post lại ở phần bình luận đi a
@nightcoretado3877
@nightcoretado3877 3 жыл бұрын
hôm nay lại tiếp tục cày
@HongNhung-dm5zi
@HongNhung-dm5zi 8 ай бұрын
so so grateful for your lesson !
@thanhh_pham5366
@thanhh_pham5366 4 ай бұрын
cho mình hỏi vòng for(i=0,i
@28tech_
@28tech_ 4 ай бұрын
N^2 đó em
@KienNguyen-mo3we
@KienNguyen-mo3we 3 жыл бұрын
bài giảng của anh hay quá
@28tech_
@28tech_ 3 жыл бұрын
Thank you :D.
@quangvo2552
@quangvo2552 4 ай бұрын
chính thức bắt đầu ngày hôm nay try hard
@datdang9416
@datdang9416 2 жыл бұрын
good job bro, thank you for video
@hovanhung9802
@hovanhung9802 3 жыл бұрын
Bài giảng hay lắm anhh.Okk:))
@28tech_
@28tech_ 3 жыл бұрын
Ok thank you em đã ủng hộ hehe.
@zerotwo918
@zerotwo918 Жыл бұрын
e học xong c rùi. h wa c++ để học oop. a cho e hỏi trong series này oop là đầy đủ r à anh
@VietLe-fp7me
@VietLe-fp7me 9 ай бұрын
em cảm ơn anh nhiều lắm
@nguyenhuyhoang8833
@nguyenhuyhoang8833 3 ай бұрын
quá ok
@khanhsb15
@khanhsb15 2 жыл бұрын
Cảm ơn bạn
@Vlingn
@Vlingn Жыл бұрын
Bài này e nghĩ bét nhất nó phải ở sau bài mảng chứ nhỉ ?
@28tech_
@28tech_ Жыл бұрын
Học cái C++ này mà muốn học nâng cao rất khó học hết cái này rồi mới tới cái kia em ạ nó thường lẫn
@ThuyHoang-di4hs
@ThuyHoang-di4hs 3 жыл бұрын
anh ơi nhiều từ OK quá , nhưng e cảm ơn anh ạ
@28tech_
@28tech_ 3 жыл бұрын
Haha ok. A sẽ rút kinh nghiệm. Nó quen mồm.
@trung645
@trung645 Жыл бұрын
anh ơi hình như còn chia làm độ phức tạp về thời gian và độ phức tạp về tài nguyên sử dụng đúng k ạ?
@chuitv7035
@chuitv7035 Жыл бұрын
while(n%i==0){ n=n/i;dem++} này độ phức tạp là bao nhiêu nhỉ
@28tech_
@28tech_ Жыл бұрын
LogN nhé bạn
@norly_nzn
@norly_nzn 2 жыл бұрын
anh ơi vậy khi lập trình game vậy mình cần phải học những cái gì ạ, tại em không phải dùng code để học mà là làm game nhưng em vẫn chưa biết phải học cái nào mới đúng????
@hoangnguyencao58
@hoangnguyencao58 Жыл бұрын
C++,C#,java
@HuyĐạtPhan-o8f
@HuyĐạtPhan-o8f 7 ай бұрын
vi sao a[i] + a[j] > val vậy ạ
@trunguc6711
@trunguc6711 5 ай бұрын
Tại sao căn của n lại được coi là log n được ạ
@tutosolve
@tutosolve 3 ай бұрын
có vẻ sai chỗ này
@khanhta-rx2ku
@khanhta-rx2ku 3 жыл бұрын
xong series này đã là tới data structures and algorithms đúng k ạ !
@28tech_
@28tech_ 3 жыл бұрын
Chắc mình sẽ làm Python trước. DSA làm hơi mất thời gian. Series C++ này cũng chứa sắp xếp, tìm kiếm, sinh vs quay lui rồi :D
@khanhta-rx2ku
@khanhta-rx2ku 3 жыл бұрын
@@28tech_ series này bọn e biết được thêm những cái mới về c và c++, em cảm ơn a nhiều lắm ạ. rất mong sau này a có những content hay như thế ạ. như về mảng js ạ. rất hóng những vid tiếp theo của a!
@28tech_
@28tech_ 3 жыл бұрын
@@khanhta-rx2ku Cảm ơn phản hồi của bạn nhé.
@NguyenHongQuan_BDCCN
@NguyenHongQuan_BDCCN 2 жыл бұрын
anh ơi (O logbình n) là ntn ạ, theo anh bảo thì căn n coi là O(log n) vậy O(log ^2 n) là O(n) ạ, em chưa hiểu lắm
@giapmaitan9844
@giapmaitan9844 2 жыл бұрын
seri này học trong bao lâu thì ổn v ad
@28tech_
@28tech_ 2 жыл бұрын
Học tốt thì 3 tháng, bình thường thì 5 6 tháng, học không cẩn thận thì mấy năm cũng không hết :D
@kaito66662
@kaito66662 4 ай бұрын
for (int i = 0; i < n; i++) { // 2 + (1 + 1 + A)n + 1 for (int j = i + 1; j < n; j++) { // A = 3 + 13(n - 1) + 1 if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; } } } anh cho em hỏi với ạ xác định số phép toán của cái này như nào ạ hôm đấy em đi học muộn không kịp nghe giảng đoạn đầu chỉ kịp code lại trên bảng
@zinzii2990
@zinzii2990 2 жыл бұрын
anh ơi câu này tính độ phức tạp thì như thế nào : void in(int k) { cout
@thuatvan6245
@thuatvan6245 2 жыл бұрын
Gcd(ll a,ll b ) ấy ạ
@28tech_
@28tech_ 2 жыл бұрын
ah hàm này là hàm ước chung lớn nhất nhé em :D, còn lcm là hàm bội chung nhỏ nhất.
@thuatvan6245
@thuatvan6245 2 жыл бұрын
@@28tech_ dạ e cảm ơn nhiều ạ
@khongbietnam
@khongbietnam 4 ай бұрын
ok
@28tech_
@28tech_ 4 ай бұрын
@@khongbietnam ok luôn 🤭
@tambui7728
@tambui7728 2 жыл бұрын
Nếu mà em có 2 vòng for riêng biệt Vòng for1 chạy từ 1 đến sqrt(n) Vòng for2 chạy từ sqrt(n) đến n Thì độ phức tạp là O(logn) hayO (n) thế anh
@28tech_
@28tech_ 2 жыл бұрын
Tích độ phức tạp của 2 vòng for em.
@tambui7728
@tambui7728 2 жыл бұрын
@@28tech_ ok anh
@nhatphamhong4183
@nhatphamhong4183 2 жыл бұрын
n+m nha
@SPK-Alast
@SPK-Alast Жыл бұрын
Phân tích độ phức tạp để làm gì vậy ạ
@taynguyenduongchanh1575
@taynguyenduongchanh1575 8 ай бұрын
Để chọn thuật toán cho tối ưu đấy. 1 bài có nhiều cách giải, mỗi cách giải có 1 độ phức tạp riêng. K phân tích chọn bừa nếu input nó cao + chọn cách giải ví dụ 2 vòng for lồng nhau độ phức tạp là O(n^2) thì ăn TLE vào mồm
@inhhuuan6042
@inhhuuan6042 3 жыл бұрын
Series C++ này đã bao gồm các bài hướng đối tượng và cấu trúc dữ liệu rồi đúng ko ạ?
@28tech_
@28tech_ 3 жыл бұрын
Có 1 số ctdl rồi e. Em có thể xem qua nội dung playlist bên dưới
@vuhoang6968
@vuhoang6968 Жыл бұрын
ô kê
@28tech_
@28tech_ Жыл бұрын
Oke 🤟
@thuatvan6245
@thuatvan6245 2 жыл бұрын
cho em hỏi phút 4:43 dòng 30 tại sao i
@28tech_
@28tech_ 2 жыл бұрын
Code như vậy nó ko tối ưu.
@thuatvan6245
@thuatvan6245 2 жыл бұрын
@@28tech_ dạ em hiểu r ạ
@hieuthach9391
@hieuthach9391 2 жыл бұрын
cái phân tích độ phức tạp này để làm gì vậy anh ?
@28tech_
@28tech_ 2 жыл бұрын
Để biết thuật toán của mình có tốt hay không em ạ
@nguoicuacongchung9962
@nguoicuacongchung9962 Жыл бұрын
hình như a lạm dụng từ OK hơi nhiều đấy anh
@28tech_
@28tech_ Жыл бұрын
Oke em 🤗🤗🤗. Giờ hết rồi
@chatGPT-ni7gx
@chatGPT-ni7gx Жыл бұрын
cho em hỏi tại sao video của anh cứ bị rè rè á
@thuatvan6245
@thuatvan6245 2 жыл бұрын
gcd lcm có tác dụng gì vậy ạ
@28tech_
@28tech_ 2 жыл бұрын
Ý em hỏi là gì nhỉ?
@phanhonghanhbtechn7228
@phanhonghanhbtechn7228 Жыл бұрын
ok ok
@28tech_
@28tech_ Жыл бұрын
Oke 😆😆😆
@CongNguyen-fi5cd
@CongNguyen-fi5cd Жыл бұрын
học này để lmj v a
@28tech_
@28tech_ Жыл бұрын
Học để biết mình code có tốt hay không?
@hplat-vku
@hplat-vku Жыл бұрын
mấy bác học code có ghi chép gì không, hay chỉ làm ví dụ cho dễ nhớ
@doncream2908
@doncream2908 Жыл бұрын
có dùng // kế bên cái ví dụ để note
@hplat-vku
@hplat-vku Жыл бұрын
@@doncream2908 thank bác ạ, kiểu em sợ quên mấy đoạn code. Thôi thì cứ làm nhiều là nhớ bác nhỉ
@trankhanh2320
@trankhanh2320 2 жыл бұрын
O(căn n) sao bằng )(log n ) vậy anh
@28tech_
@28tech_ 2 жыл бұрын
Chính xác thì là O(can n) nhé em. A hay quy chung logN 😇
@nguyenuckhoi8627
@nguyenuckhoi8627 4 ай бұрын
Sao O(log n) lại bằng O(sqrt(n)) vậy?
@28tech_
@28tech_ 4 ай бұрын
@@nguyenuckhoi8627 chuẩn thì là O(logN) nha em
@LienLe-rh3dl
@LienLe-rh3dl 3 жыл бұрын
anh ơi với câu này độ phức tạp thì sao anh ? int gcd(int a, int b) { int p = 0; while (b != 0) { p = a % b; a = b; b = p; } return a; }
@28tech_
@28tech_ 3 жыл бұрын
Gcd dpt la o(log(min(a,b))
@LienLe-rh3dl
@LienLe-rh3dl 3 жыл бұрын
@@28tech_ em cảm on anh
@chuitv7035
@chuitv7035 Жыл бұрын
Em để là O(log(n)) được không anh
@ngoile876
@ngoile876 2 жыл бұрын
a ơi, cho e hỏi: Nhập vào một biễu thức toán học dạng chuỗi bao gồm phép cộng và phép nhân Tính giá trị của biểu thức đó. vi du: input: "234*345*34+88+56*56+45+6*4" output: 2748113 bài này mình xử lý như nào vậy a
@28tech_
@28tech_ 2 жыл бұрын
Này em phải học cách tính toán giá trị biểu thức trung tố nhé. Tìm từ khoá evaluate infix expression geeksforgeeks
@ngoile876
@ngoile876 2 жыл бұрын
@@28tech_ ôi e c.on a ạ, tại e gặp bài này e lại nghĩ theo hướng C khi a cho e keyword thì e mới biết đó là C++
@28tech_
@28tech_ 2 жыл бұрын
@@ngoile876 c cũng được mà nhưng khó code lắm
@tgjang4947
@tgjang4947 2 жыл бұрын
tác dụng của cái O() này là sao ạ
@28tech_
@28tech_ 2 жыл бұрын
Nó là kí hiệu thôi e. Big O Notation
@HaiDang_23
@HaiDang_23 2 жыл бұрын
-1e9 là sao ạ
@28tech_
@28tech_ 2 жыл бұрын
IT PTIT năm mà toang thế e. -10^9 nhé e
@HaiDang_23
@HaiDang_23 2 жыл бұрын
@@28tech_ dốt quá a ạ😞😞. May có kênh này cứu cánh
@tranthienphuc8543
@tranthienphuc8543 3 жыл бұрын
với câu như thế này thì độ phức tạp phải tính như thế nào z anh ? void printone (int a[]){ for(i = 0; i0 ;j - - ){ if(a[i ] == a[ j ]) f=1; } if(f == 0) printf("%d" , a[ i ]); } }
@28tech_
@28tech_ 3 жыл бұрын
Vẫn là O(n^2) nhé, mặc dù vòng for con trong lặp ít hơn :D,
@tranthienphuc8543
@tranthienphuc8543 3 жыл бұрын
@@28tech_ anh có thể giải chi tiết giúp em như trong video anh đã làm đc ko tại vì phần độ phức tạp của thuật toán, nếu như chỉ nói kết quả cuối cùng thì nó không đủ để chứng minh đc, em cũng đang vướng mắc phần này và gặp đúng bài này nên em cũng chả biết phải tìm thời gian thực hiện của các câu lệnh như thế nào nữa. Nếu như ở vòng for trên thì nó quá rõ ràng để xác định đc số lần lặp, nhưng ở vòng for dưới việc tìm số lần là rất khó do i có 2 trường hợp là 0 hoặc 1 thì nó ko lặp mà muốn xây dựng một công thức tính số lần lặp tổng quát cho câu dưới thì em lại ko biết. Mong anh có thể giúp đỡ em đc ko
@hungtruong7812
@hungtruong7812 Жыл бұрын
Sao m*n =n*2
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Độ phức tạp thuật toán O(logn)
21:57
Thầy Hưng Vlog
Рет қаралды 1 М.
CTDL&GT: 2.Độ phức tạp thuật toán
13:55
Viet Anh NGUYEN
Рет қаралды 28 М.