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_ 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.
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????
Đá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_ 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!
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
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
Để 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
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_ 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
Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/
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.
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
@@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.
Bài giảng hay quá ạ
C++ mình còn ít về con trỏ vs hướng đối tượng nữa là xong rồi :D
cho mình hỏi vòng for(i=0,i
N^2 đó em
hôm nay lại tiếp tục cày
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
so so grateful for your lesson !
chính thức bắt đầu ngày hôm nay try hard
bài giảng của anh hay quá
Thank you :D.
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 ạ?
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????
C++,C#,java
Đá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}
Độ 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)
@@28tech_còn trường hợp xấu nhất của nó sẽ là gì anh!~~
@@duongvankieu4828 logN là xấu nhất rồi đấy.
em cảm ơn anh nhiều lắm
quá ok
Bài này e nghĩ bét nhất nó phải ở sau bài mảng chứ nhỉ ?
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
Bài giảng hay lắm anhh.Okk:))
Ok thank you em đã ủng hộ hehe.
Cảm ơn bạn
good job bro, thank you for video
anh ơi nhiều từ OK quá , nhưng e cảm ơn anh ạ
Haha ok. A sẽ rút kinh nghiệm. Nó quen mồm.
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 ạ?
Có 1 số ctdl rồi e. Em có thể xem qua nội dung playlist bên dưới
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
xong series này đã là tới data structures and algorithms đúng k ạ !
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
@@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!
@@khanhta-rx2ku Cảm ơn phản hồi của bạn nhé.
seri này học trong bao lâu thì ổn v ad
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
cho em hỏi phút 4:43 dòng 30 tại sao i
Code như vậy nó ko tối ưu.
@@28tech_ dạ em hiểu r ạ
while(n%i==0){ n=n/i;dem++} này độ phức tạp là bao nhiêu nhỉ
LogN nhé bạn
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
Tích độ phức tạp của 2 vòng for em.
@@28tech_ ok anh
n+m nha
vi sao a[i] + a[j] > val vậy ạ
Gcd(ll a,ll b ) ấy ạ
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.
@@28tech_ dạ e cảm ơn nhiều ạ
học này để lmj v a
Học để biết mình code có tốt hay không?
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
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
@@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++
@@ngoile876 c cũng được mà nhưng khó code lắm
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
Tại sao căn của n lại được coi là log n được ạ
có vẻ sai chỗ này
anh ơi câu này tính độ phức tạp thì như thế nào :
void in(int k) {
cout
gcd lcm có tác dụng gì vậy ạ
Ý em hỏi là gì nhỉ?
cái phân tích độ phức tạp này để làm gì vậy anh ?
Để biết thuật toán của mình có tốt hay không em ạ
Phân tích độ phức tạp để làm gì vậy ạ
Để 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
tác dụng của cái O() này là sao ạ
Nó là kí hiệu thôi e. Big O Notation
mấy bác học code có ghi chép gì không, hay chỉ làm ví dụ cho dễ nhớ
có dùng // kế bên cái ví dụ để note
@@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ỉ
cho em hỏi tại sao video của anh cứ bị rè rè á
O(căn n) sao bằng )(log n ) vậy anh
Chính xác thì là O(can n) nhé em. A hay quy chung logN 😇
hình như a lạm dụng từ OK hơi nhiều đấy anh
Oke em 🤗🤗🤗. Giờ hết rồi
ok
@@khongbietnam ok luôn 🤭
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;
}
Gcd dpt la o(log(min(a,b))
@@28tech_ em cảm on anh
Em để là O(log(n)) được không anh
ô kê
Oke 🤟
-1e9 là sao ạ
IT PTIT năm mà toang thế e. -10^9 nhé e
@@28tech_ dốt quá a ạ😞😞. May có kênh này cứu cánh
ok ok
Oke 😆😆😆
Sao O(log n) lại bằng O(sqrt(n)) vậy?
@@nguyenuckhoi8627 chuẩn thì là O(logN) nha em
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 ]);
}
}
Vẫn là O(n^2) nhé, mặc dù vòng for con trong lặp ít hơn :D,
@@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
Sao m*n =n*2