giới thiệu thuật toán sắp xếp nổi bọt trong ngôn ngữ c. tự học lập trình. hướng dẫn lập trình Căn bản và nâng cao. C programing for beginner. triệu thân channel - let's grow together! link get source code: adf.ly/1jOTdQ
Пікірлер: 176
@minhquanle20356 жыл бұрын
Minh họa quá hay, trực quan, dễ hiểu. Cám ơn anh.
6 жыл бұрын
ok e
@khoanguyenntk9302 Жыл бұрын
hay quá anh, nhìn vô 2 vòng lặp for i,j cái hiểu giải thuật luôn
Hay quá! Mình muốn hỏi là khi chạy chương trình xong bạn làm thế nào để phóng to màn hình kết quả ạ? Xin cảm ơn!
@truongthecong5083 жыл бұрын
quá tuyệt vời anh ơi , minh họa xem cái hiểu luôn
@trungthanhpham84633 жыл бұрын
dễ hiểu quá cảm ơn a..
3 жыл бұрын
oke
@hungduongminh39003 жыл бұрын
thuật toán quá kinh điển anh ơi
3 жыл бұрын
Nhưng vẫn hữu ích
@trungnghiaphamang60752 жыл бұрын
minh hoạt rất dễ hiểu
2 жыл бұрын
Thank you
@vuhaiduong3476 жыл бұрын
quas hay anh ơi,anh ra nhiều phần nữa nhé,ở trường các thầy dạy không nghe thế nào ạ
6 жыл бұрын
Ok
@dthuyday7 ай бұрын
anh ơi em muốn hỏi là nếu có 8 phần tử như trên vid thì có 7 lần sắp xếp hay 6 lần vậy ạ? vì em làm tới lần 6 là dãy ra đúng thứ tự tăng dần rồi ấy ạ. Em cảm ơn anh nhiều ạ
7 ай бұрын
số lần cần sắp xếp phụ thuộc vào giá trị cụ thể của các phần tử có mặt trong mảng nhé e. Sắp xếp khi nào chúng đúng trật tự thì kết thúc. Nếu mảng gồm n phần tử thì số lần lặp sắp xếp tối đa với vòng lặp ngoài là n - 1. thực tế có thể ít hơn.
@tienatongvu12035 жыл бұрын
anh ơi cho em hỏi, tại sao lại là j>i mà không phải j
5 жыл бұрын
E thay vào và chạy xem kết quả nhé
@chientran27275 жыл бұрын
tại sao bài này khác bài trc k làm int*b; b=nhap(b); hienThi(b); bullesort(b); hienThi(b) nữa vậy, do không dùng trả về mảng từ hàm à hay sao vậy?
@thanhhuy52775 жыл бұрын
học tới mảng thấy mình củ chuối vãi loằn, như vịt nghe sấm, dù đã replay nhiều lần :((
5 жыл бұрын
E nên code lại vài lần sẽ có hiệu quả
@lowtech14795 жыл бұрын
Minh hoa hay that, thanks ban!
@duongmanh6267 жыл бұрын
hay quá anh,,em nghe anh còn hơn là đi học,... nhưng anh ơi em muốn hỏi là i
7 жыл бұрын
e hiểu đơn giản thế này: mảng bắt đầu từ phần tử có chỉ số là 0, như vậy, để lưu n phần tử thì chỉ số phần tử cuối cùng là n-1. ( từ a[0], a[1], ... , a[n-1] là đủ n phần tử). do đó j phải bắt đầu từ n-1 vì j là chỉ số của mảng a[]. với biến i thì nó chỉ cần xét tới n-2 vì khi đó nó là phần tử sát cuối cùng rồi, nếu có đổi chỗ thì chỉ đổi chỗ với thằng thứ n-1. còn thì cho i tới n-1 vẫn đc, chẳng qua là khi đó thì nó đổi chỗ với chính nó (nếu có, thường ko xảy ra) => không cần thiết
@k3k3nguyen464 жыл бұрын
a ơi e tưởng cái j của mình sau vòng lặp 1 chỉ so sánh giữ a[2] với a[1] thôi chứ ạ tại j của mình đkiện 2 là j >i
@yuange21006 жыл бұрын
Cảm ơn anh
6 жыл бұрын
OK e
@thanhvu65096 жыл бұрын
hay lắm anh ơi
6 жыл бұрын
Thank you 😄 😄😄
@nghiemnguyenvan22446 жыл бұрын
hay quá
@DungNguyen-kw2nc2 жыл бұрын
em hiểu r hehe cảm ơn anh
@tiennghia51075 жыл бұрын
Theo Anh , Anh thấy trong các kiểu sort thì kiểu nào hay nhất vậy ạ .
5 жыл бұрын
Quick sort e ạ
@tiennghia51075 жыл бұрын
@ Da , e cam on A
5 жыл бұрын
@@tiennghia5107 oke
@viettran81955 жыл бұрын
A oi! Vì sao phải int &n ở hàm nhap đầu tiên vậy anh?
5 жыл бұрын
Tham chiếu trong c++ nhé. E nên học phần đó trước
@huongbui13264 жыл бұрын
anh ơi cho em hỏi cái int tg= a[j]; a[j]=a[j-1]; a[j-1]=tg; cái này sao không swap( a[j], a[j-1]) luôn ạ? Việc viết như vậy có ý nghĩa gì vậy ạ?
4 жыл бұрын
Thu Hương bản chất nó là swap rồi e
@hoangnguyeninh21238 жыл бұрын
cho e hỏi.neu trường hợp i[7]=9.va thuat toan xet i
8 жыл бұрын
thằng i chạy từ phần tử đầu tiên tới thằng thứ hai cuối cùng. còn việc đổi chỗ là đổi chỗ chỉ số của j chứ e.
@sonnguyenuc2005 жыл бұрын
Cho em hỏi nếu có 2 lệnh for lồng nhau thì máy sẽ thực hiện hết lệnh for trong trước rồi mới đến lệnh for ngoài hay thực hiện lặp 1 lần for trong sau lại đến lặp 1 lần for ngoài rồi cứ thế thực hiện đến khi hết
5 жыл бұрын
E debug để thấy rõ câu trả lời nhé
@TrinhNgocTuan-hc9lz6 жыл бұрын
THẾ LÀM SAO ĐỂ NÓ HIỂN THỊ CÁC BƯỚC LÀM LÊN MÀN HÌNH Ạ
@tranminhtam24107 жыл бұрын
Chào bạn, lời đầu tiên rất cảm ơn bạn vì đã làm những cái clip bổ ích này, đặc biệt với người mới bắt đầu học lập trình như mình. Mình có câu một thắc mắc cần bạn giúp đỡ, mình đã copy đoạn code của bạn và lưu dưới dạng file .c thì chương trình chạy được nhưng kết quả xuất hiện bị lỗi và sau đó mình lưu dưới dạng C++ source files (*.cpp; *.cc;....) thì nó lại chạy. Bạn có thể giải thích cho mình hiểu đc ko? Mình cảm ơn bạn.
7 жыл бұрын
Code c và C++ giống nhau khá nhiều. Clips này mình code theo c++ đuôi mở rộng .CPP nhé.
@kehatdao70207 жыл бұрын
Mình cảm ơn bạn
@tv.tai2k15 жыл бұрын
a ơi tai sao dòng void nhap có int &n còn dòng void bubbsorf và dong void xuat không có chữ & vậy a
5 жыл бұрын
Đó là tham chiếu trong c++
@thanhliemnguyen49485 жыл бұрын
Hay quá anh ơi
@suoya92964 жыл бұрын
E tưởng phải printf từ a[0] chứ
@commentdao14257 жыл бұрын
đại ca cho em hỏi tại sao ở hàm nhap void nhap(int a[ ], int &n) cái tham số n trong ngoặc có "&" còn ở các hàm khác thì k cần, và khi bỏ cái "&" đấy đi thì chạy lại lỗi
7 жыл бұрын
Hà Đinh đó là cú pháp cho phép hàm nhap () thay đổi giá trị của biến n. Cụ thể là nhập mới giá trị cho n
@commentdao14257 жыл бұрын
ok. cảm ơn anh!!!
@duongduong55366 жыл бұрын
anh ơi vậy tại sao em cho & vào trước a[ ] lại không chạy được ạ
@thuycaothiphuong53535 жыл бұрын
cho e hoi sai ở đâu mà nó chỉ nhao n với xuat mảng, k có sắp xếp ạ #include void nhap(int a[], int n){ int i; printf(" nhap n="); scanf("%d",&n); for ( i = 0;i < n; i++){ printf(" Nhap phan tu a[%d] = ", i+1); scanf("%d", &a[i]);} } void bubbleSort ( int a[], int n){ int i,j; for (i=0 ; ii ; j--){ if( a[j]< a[j-1]){ int tam=a[j]; a[j]=a[j-1]; a[j-1]=tam; } } } } void xuat(int a[], int n){ int i; for (i = 0;i < n; i++) printf(" %5d", a[i]); printf(" "); } int main(){ int a[10]; int n; nhap(a,n); bubbleSort(a,n); xuat(a,n); return 0; }
5 жыл бұрын
e sửa lại như này: void nhap(int a[], int *n){ int i; printf(" nhap n="); scanf("%d", n); for ( i = 0;i < *n; i++){ printf(" Nhap phan tu a[%d] = ", i+1); scanf("%d", &a[i]); } } gọi hàm trong main: nhap(a, &n);
@thuycaothiphuong53535 жыл бұрын
@ sao lại sửa như v ạ
@thuycaothiphuong53535 жыл бұрын
@ vẫn khonng sắp xếp dc a
5 жыл бұрын
@@thuycaothiphuong5353 e xem lại phần truyền tham chiếu trong c
@sonnguyenvan22187 жыл бұрын
Làm sao để đổi màu khi mình cho chương trình chạy từ chữ màu trắng nền đen sang chữ màu xanh lá cây nền đen hả a
7 жыл бұрын
Sơn Nguyễn Văn chuột phải vào giao diện đang hiển thị. Chọn properties, sau đó click vào cái background và chọn màu các thành phần
@tiep14755 жыл бұрын
a ơi e viết ntn sao chạy không ra dãy số ạ #include int i, j,tg; void nhap(int a[], int n){ printf("nhap n = "); scanf("%d", &n); for(i = 0;i
@thangnguyenkhac53887 жыл бұрын
a cho e hỏi là không hiểu sao khi trong hàm nhập mà mình scanf("%d", &n) thì máy e chạy lại cứ báo lỗi ạ, còn nếu mà xoá bỏ dòng đó ở hàm nhập mà khai báo n và scanf ở dưới hàm main thì lại được ạ
7 жыл бұрын
e nói thế khó tưởng tượng quá. code phải chuẩn nó mới chạy, mà lỗi thì đủ kiểu chứ. lập trình là phải tuân thủ nguyên tắc, muốn dùng cái gì phải khai báo r mới dùng đc nha
@tuanxuan43016 жыл бұрын
Mình nghĩ bạn nên khai báo a[MAX] trước, MAX là một số cụ thể rồi mình sẽ nhập số n < MAX thì mới được
@ThanhTrungoan-ml3is3 жыл бұрын
anh ơi em muốn a kèm online môn C được ko ạ.Em đang học lập trình thầy Ngọc ptit
3 жыл бұрын
Hiện a rất bận nên k nhận vụ này đc nhé
@vuongcode82086 жыл бұрын
#include void nhapmang(int a[],int n){ int i; for(i=0;i
6 жыл бұрын
hungnro1 nguyen e khai báo hai biến i, j ra ngoài vòng lặp nha
@vuongcode82086 жыл бұрын
oke duoc roi a> thank a
6 жыл бұрын
hungnro1 nguyen OK e
@giaitritv34155 жыл бұрын
anh cho em hỏi tại sao phần hàm main lại có a[20] ạ thay số 20 bằng số khác có được không ạ
5 жыл бұрын
đó là mảng e nha.
5 жыл бұрын
thay đc
@hoasmile21638 жыл бұрын
cho e hỏi là s trong ct void nhập kia lại dùng &n , e cop y như bài a thì n cứ lỗi ở đấy
8 жыл бұрын
+Hoa smile bẠn nói cụ thể hơn đc chứ ? hay bạn dùng visual studio hả ?
@hoasmile21638 жыл бұрын
+thân triệu e dùng dev c++ n ns là 47 25 C:\Users\VS9 X64Bit\Documents\thuat toan sui bot.c [Error] expected ';', ',' or ')' before '&' token
@BDCCN_PhamCongTuan4 жыл бұрын
anh ơi cho em hỏi làm sao để in được kết quả các bước sắp xếp vậy ạ??? INPUT 8 1 3 8 2 9 7 6 5 OUTPUT 1 3 2 8 7 6 5 9 1 2 3 7 6 5 8 9 1 2 3 6 5 7 8 9 1 2 3 5 6 7 8 9
@nguyentrungtuyen97526 жыл бұрын
Anh ơi cho em hỏi. void nhap(int a[], int &n) Có &n thì máy báo lỗi "[Error] expected ';', ',' or ')' before '&' token" Còn khi k có & thì chạy được nhưng mà lại không ra kết quả
6 жыл бұрын
Đây là cú pháp của c++. E làm theo cú pháp của c thì thay tham số là *n, gọi hàm truyền &n
@nguyentrungtuyen97526 жыл бұрын
vẫn không ra kết quả Anh xem dùm e. #include void nhap(int a[], int *n){ printf(" Nhap n: "); scanf("%d",&n); int i; for(i=0; i
@hoanguyen13895 жыл бұрын
@@nguyentrungtuyen9752 chỗ nhap(a,&n);
@dilaradio85897 жыл бұрын
anh ơi . cho em hỏi về phần bubblesort có gắn cờ hiệu flag là chạy sao ạ với giải thuật của nó như thế nào ạ ? thanks ad
7 жыл бұрын
a chưa từng nghe cái đó,
@hpq9650 Жыл бұрын
cho mình xin slide được không
@HoaLe-jx3gg6 жыл бұрын
anh có thể chỉ một vài phím tắt trong khi làm c không?
6 жыл бұрын
Hòa lê cụ thể chút đi e
@HoaLe-jx3gg6 жыл бұрын
thân triệu đại loại như trong word đó anh . Lên đầu dòng coppy dòng trên, hoặc giống trong java vậy gọi tên lớp mà ko cần gõ lại!!
6 жыл бұрын
nếu vậy thì e phải dùng công cụ tốt hơn thì mới đc. ví dụ như visual studio ấy nhé. cái devc++ chỉ hỗ trợ rất ít
@viettruong5565 жыл бұрын
Sao nó bị lỗi này ở phần void vậy ạ: [Error] a function-definition is not allowed here before '{' token #include int main() { void nhap(int a[], int n) { printf(" Nhap n: "); scanf("%d", &n) for(int i=0; i
5 жыл бұрын
Không khai báo hàm trong hàm nha
@hoangthithanhthuy58744 жыл бұрын
anh ơi làm thế nào để nó hiện r atừng bước mà mình hoán vị ạ
4 жыл бұрын
debug ddi e
@truongconghuu78556 жыл бұрын
Anh kiểm tra giúp em, sao nó chạy đến hàm nhập sau đó nó ko chạy nữa. #include void nhap(int a[], int &n){ printf(" Nhap n: "); scanf("%d",&n); int i; for(i=0; i
6 жыл бұрын
E debug ấy
@kienvan10066 жыл бұрын
làm silde kiểu j cho nó chuyển động được vậy ạ.a chỉ em với không thì cho em cái link nào chỉ cách làm slide kiểu này với ạk
6 жыл бұрын
Slide a chôm đc. A không liên quan đâu
@kienvan10066 жыл бұрын
vậy còn nữa ko anh
6 жыл бұрын
@@kienvan1006 không e ạ
6 жыл бұрын
a còn slide về thuật toán như vậy k ạ ? Cho e xin với.
6 жыл бұрын
A k còn nữa e ạ
6 жыл бұрын
@ tiếc nhỉ, VD rất dễ hiểu, trước e cũng xem ở đâu video nó tương tự kiểu vậy mà k nhớ ở đâu nữa. A biết trang nào mô phỏng các thuật toán như kiểu đó k ạ ?
6 жыл бұрын
@ a cũng không nhớ e ạ
@vanluutran7266 жыл бұрын
quá hay
@an9536 жыл бұрын
a ơi , cho e hỏi , tại sao chạy trên Code : Block nó báo lỗi ở phần Void Nhap()
6 жыл бұрын
cụ thể code của e như nào?
@an9536 жыл бұрын
E lấy nguyên cái code ở link của a
@tran3026 Жыл бұрын
hay thật ânh ơi :))) mừ đ
@niennguyenquang18035 жыл бұрын
a ơi giúp e , ct nó hiện lỗi comparison between pointer and integer ở hàm nhap(), và ct chỉ cho nhập số n , nhập xong thì kết thúc luôn ạ , chứ ko sắp xếp , e cảm ơn a #include void nhap(int a[], int *n ){ printf(" Nhap n = "); scanf("%d", &n); int i; for(i = 0; i < n; i++ ){ printf(" Nhap a[%d] = ", i+1); scanf("%d", &a[i]); } } void bubbleSort(int a[], int n ){ int i,j; for(i= 0; i< n-1; i++ ){ for(j = n-1; j > i; j-- ) if( a[j] < a[j-1] ) { int tg = a[j]; a[j] = a[j-1]; a[j-1] = tg; } } } void xuat(int a[], int n ){ int i; for(i = 0; i< n; i++ ) printf("%5d", a[i]); printf(" "); } int main(){ int a[20]; int n; nhap(a,&n); xuat(a,n); bubbleSort(a,n); xuat(a,n); return 0; }
5 жыл бұрын
Bỏ & trước n đi
5 жыл бұрын
Trong hàm nhập ấy
@niennguyenquang18035 жыл бұрын
@ sau khi nhập các giá trị thì nó vẫn ko chạy a ạ , kết thúc luôn chứ ko chạy sắp xếp giá trị
@niennguyenquang18035 жыл бұрын
[Warning] comparison between pointer and integer , nó hiện cái này ở dòng ''for(i = 0; i < n; i++ ){'' ạ
5 жыл бұрын
@@niennguyenquang1803 sửa lại như này: void nhap(int a[], int *n ){ printf(" Nhap n = "); scanf("%d", n); int i; for(i = 0; i < *n; i++ ){ printf(" Nhap a[%d] = ", i+1); scanf("%d", &a[i]); } } recomment: e nên xem lại phần con trỏ trong ngôn ngữ lập trình C nha
@tronghiep35004 жыл бұрын
anh cho em hỏi sao lại int &n ạ
4 жыл бұрын
lí do thì e học phần tham chiếu trong ngôn ngữ c++
@quangtungle78646 жыл бұрын
anh ơi cho em hỏi tại sao code của e nó lại báo lổi ở phần int &n vậy ạ
@quangtungle78646 жыл бұрын
ủa kỳ vậy anh tại sao e đổi .c thành .cpp nó mới chạy được vậy ạ
6 жыл бұрын
code C sẽ báo lỗi nhé. e thay bằng tham chiếu trong c
@quangtungle78646 жыл бұрын
@ ak em cảm ơn ạ
@h.n.a.d78046 жыл бұрын
làm sao để ở kết quả nó hiển thị ra lần lượt từng bước vậy, viết hàm như thế nào vậy, ae chỉ với
6 жыл бұрын
in kq ra ở vòng lặp trong cùng
@HoangBui-nm9xl7 жыл бұрын
taij sao hàm nhập chỗ khai báo n lại là int &n ạ. e chưa hiểu chỗ đó
7 жыл бұрын
Hoàng Bùi đó là tham chiếu trong c++
@HoangBui-nm9xl7 жыл бұрын
e cảm ơn ạ. bài giảng của a hay :)))))
7 жыл бұрын
Hoàng Bùi ok e
@NgocMinh-vv4vp5 жыл бұрын
A ơi a giải thích cho e dòng 15,16,17 dc k ạ?
@thoihaiuc85895 жыл бұрын
Để đổi chỗ a[j] và a[j-1] thôi bạn
@BDCCN_NguyenThiLanAnh4 жыл бұрын
%5d là gì ạ
4 жыл бұрын
Anh Nguyễn dành 5 vị trí để in ra số nguyên
@ducpham2065 жыл бұрын
anh ơi sao em nhập tg là biến trung gian mà dev em nó k nhận anh
5 жыл бұрын
đã khai báo biến chưa e?
@quannguyenvan37485 жыл бұрын
Anh và mọi người cho em hỏi là sao khi em lưu dưới dạng .c thì chương trình ko chạy ạ #include void bubblesort(int a[], int n){ int i, j; for(i=0;ii;j--){ if(a[j]
@MinhDucOfficial3 жыл бұрын
ban doi qua cpp la chay duoc nhe. thang nay lam vd nhu cc bao c ma chay c++
@hoasmile21638 жыл бұрын
và e chạy bài của a. n k hiện cái bảng như của anh lúc chạy đâu. e k pik s nữa. n chỉ chạy đến a[] xong là thôi
8 жыл бұрын
+Hoa smile drive.google.com/file/d/0BxH-_m5tJz48M18wdUFvV0tSYnM/view thử tải về và chạy xem, nếu vẫn sai thì chụp màn hình mình xem, nói suông mình chịu k biết lỗi bài cảu bạn như nào.
@hoasmile21638 жыл бұрын
+thân triệu trên đây e k có gửi ảnh lên đc. có j e xin cái mail
8 жыл бұрын
than.trieu@facebook.com
@hoasmile21638 жыл бұрын
+thân triệu a check mail cho e vs
@nguyenbui18624 жыл бұрын
cái này là C++ ạ anh
4 жыл бұрын
cái này là c++
@ThuyBui-xv9dl8 жыл бұрын
ah oi có thể cho e gửi cho e cái side dk kông ạ
8 жыл бұрын
bạn ném địa chỉ mail đây mình gởi cho.
@tungnguyen75666 жыл бұрын
anh k bao nhiêu vậy.
6 жыл бұрын
anh K56 e nha
@vantuannguyen8846 жыл бұрын
Nếu mà nhập 2 giá trị giống nhau thì nó xử lý như thế nào ạ?
6 жыл бұрын
Nó dựa vào điều kiện của if . Trường hợp này nó không làm gì cả
@attran63826 жыл бұрын
A ơi Tsao trong ham void nhap(int a[] int &n) e nhập &n thì nó báo lỗi "expected ; , before &" ạ???
6 жыл бұрын
E cho dấu , vào sau tham số thứ nhất của hàm nha
@attran63826 жыл бұрын
thân triệu e có cho r n vẫn lỗi a ạ Nó báo lỗi : expected ';',',' or')' before '&' token!!!
6 жыл бұрын
@@attran6382 copy đoạn code lên đây đi e
@attran63826 жыл бұрын
#include void nhapmang(int a[], int &n){ printf("Nhap vao n: "); scanf("%d", &n); int i; for(i=0; i
@NHTan-b5o6 жыл бұрын
cho em xin slide vào mail : nguyenhoangtan9998@gmail.com được không ạ. em cảm ơn
6 жыл бұрын
tấn nguyễn slide nếu có thì ở trong phần miêu tả clip nhé
@keillovet25957 жыл бұрын
A cho em xin slide này+ thuật toán đổi chổ trực tiếp nhé. gmail: keil.socker@gmail.com . Cám ơn a
7 жыл бұрын
code mẫu thì e lấy ở link a để trong phần miêu tả clip ấy. còn slide a xóa mất r e ạ
@keillovet25957 жыл бұрын
Vậy ậ. Cám ơn anh.
@Vuxuanson987 жыл бұрын
a ơi cho e xin cái slide của a đc k ạ? vuxuanson98@gmail.com
7 жыл бұрын
tài liệu hiện đã thất lạc do đó nếu a tìm lại dc thì a gửi sau nhé.