#19.1. [C++]. Thuật Toán Sắp Xếp Chèn | Sắp Xếp Nổi Bọt | Sắp Xếp Chọn | Sắp Xếp Đếm Phân Phối

Поділитися
Вставка
  • Опубліковано 30 лис 2024

КОМЕНТАРІ • 118

  • @28tech_
    @28tech_  2 роки тому +2

    Thông tin các khóa học mình đang hướng dẫn : 28tech.com.vn/

  • @TienVu-v9z
    @TienVu-v9z Рік тому +1

    Đỉnh quá anh ạ. Làm nhiều thuật toán mà không thấy có Playlist thuật toán

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

    trong bài sắp xếp chọn em nếu em khởi tạo min_pos=0 thì lúc log ra nó đưa giá trị lớn nhất lên đầu rồi tiếp theo là gtri đã sắp xếp. Em làm tăng dần như anh.
    Bài code đầu tiên á anh(selection sort).
    Anh giải thích chỗ này giúp em vs

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

    Dễ hiểu quá, cám ơn anh♡

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

      OK chúc em học tốt :D

  • @kaito66662
    @kaito66662 9 днів тому

    anh ơi sắp xếp chèn này mà có n phần tử thì mô phỏng hình học sẽ có n bước hả anh

  • @loltv6448
    @loltv6448 2 роки тому +6

    em code cái sắp xếp chèn ntn có hợp lý không anh
    void sapxepchen(int mang[],int n)
    {
    for (int i=1; i=0; j--) {
    if(key

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

    Dạ, em cảm ơn thầy nhiều ạ

  • @ThanhNguyen-qh6jt
    @ThanhNguyen-qh6jt 3 роки тому +4

    Đỉnh quá a ơii 😍

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

    ước gì anh làm giáo viên lớp em, anh giảng dễ hiểu hơn thầy em cả nghìn lần

    • @28tech_
      @28tech_  Рік тому +1

      Thầy của em có thể dạy chán rồi nên ko muốn giảng kỹ hơn hoặc là thầy không đặt vị trí của thầy vào bọn em nên chỉ dạy tới mức đó thôi. Tự tìm hiểu thôi e

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

    anh ơi cho em hỏi cái thuật toán counting_sort , chỗ khai báo int cnt[10000001] em để trong hàm main chạy thì nó không hiện lên gì , còn để ngoài hàm main nó chạy được bình thường ạ

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

      e để trong hàm main nó còn lặp vô hạn cơ=)))

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

    tuyệt vời quá anh oii

    • @28tech_
      @28tech_  3 місяці тому

      @@trungucpham1866 thank you 🤩🤩🤩

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

    cho em hỏi ở đoạn bubblesort, giả dụ em lấy n=3, thì vòng for của j của em sẽ lần lượt tăng từ j=0 , nhưng cái điều kiện j

    • @28tech_
      @28tech_  2 роки тому

      Thì giảm dần mà em vì những phần tử ở phía sau nó đc sắp xếp tăng dần

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

      @@28tech_ thế cái điều kiện j

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

      @@vinhphucdang4959 là mỗi lượt sắp xếp thì nó sẽ có 1 phần tử lớn nhất ở phía sau rồi nên lần xét kế tiếp chỉ cần xét đến những phần tử ở trước đó

  • @BDCCN-NguyenNgocNam
    @BDCCN-NguyenNgocNam 3 роки тому +4

    mong anh ra series về cấu trúc dữ liệu và thuật toán

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

      Đầy thuật toán rồi còn gì :D. Ờ có thời gian thì mình sẽ làm.

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

    a ơi dùng counting sort dùng map đếm tần suất thì các key của nó được sắp xếp sẵn rồi sau đó chỉ cần xuất ra theo tần suất của nó có được không a nhỉ

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

      Nhưng nó chạy chậm hơn dùng mảng để đếm đấy em ạ

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

      @@28tech_ vâng ạ

  • @17huynhquochieu32
    @17huynhquochieu32 4 місяці тому

    mik thắc mắc là tại sao phải học nhiều thuật toán sx trong khi mik chỉ cần 1 cái tối ưu nhất🤔

    • @28tech_
      @28tech_  4 місяці тому +1

      @@17huynhquochieu32 không có thuật toán sx tối ưu nhất, nó còn phụ thuộc vào tập dữ liệu đem đi sắp xếp nữa. Cũng như việc bạn đi từ A tới B bằng các loại xe khác nhau, không phải ai cũng có khả năng lái xe phân khối lớn. Người ta cần đi từ xe có phân khối nhỏ- tương tự các thuật toán sắp xếp cơ bản trước rồi mới sang xe phân khối lớn hơn là các thuật toán sắp xếp nâng cao, khó hiểu, tối ưu hoen

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

    dạ anh ơi cho em hỏi ở thuật selectionsort sao lại cho vòng for chạy từ i = 0 đến i < N-1 vậy ạ

    • @XuanThinhCao
      @XuanThinhCao 3 місяці тому +1

      giả sử mình có 5 phần tử 1 3 7 5 4 , với i=0 là phần tử 1, với i=1 là 3, i=2 là 7, i=3 là 5, i=4 là 4. vậy bình thường sẽ là sét từ i=0 đến i= n -1(hay i

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

    anh ơi cho em hỏi cái countingsort á anh em khai báo mảng count ngoài hàm main chạy nó báo lỗi vậy anh

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

    cái bubble sort nếu mình muốn in ra từng mảng sau khi vừa đổi vị trí cho nhau thì sao a

    • @28tech_
      @28tech_  Рік тому +2

      Thêm vòng for in trong vòng lặp chính của thuật toán ấy e

  • @HiếuTrung-x4e
    @HiếuTrung-x4e 8 місяців тому

    anh ơi em muốn hỏi cách cài đặt để xem đoạn code nó chạy như thế nào giống bên góc góc phải của anh thì cài đặt như thế nào vậy ạ. em cảm ơn ạ!

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

      Đó là anh in ra mà. Dùng cout để in ra đó

  • @QuocCuong-VKU
    @QuocCuong-VKU Рік тому

    cho e hỏi ở insertsort sao chỗ kia lại dùng --pos mà k phải pos-- vậy a?

  • @vananhnguyenthi8415
    @vananhnguyenthi8415 14 днів тому

    ủa thầy ơi cho e hỏi là dòng 9 thì tại sao nó lại là j=i+1 vậy ạ e chưa hiểu ạ. Mong thầy giải thích e cảm ơn ạ!!!

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

    thuật toán countingsort vẫn dùng cho mảng có phần tử âm được đó anh.Em lưu tần suất vào map rồi gán lại vào mảng ban đầu

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

      Haha, cái này thì người ta lại ko gọi là counting sort đâu. :D. Còn nếu dùng map thì cũng không cần vector cũng được mà.

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

      Dùng map thì độ phức tạp nó là NLogN rồi.

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

    anh ơi cho em hỏi ở thuật toán insertionsort nếu ko dùng x để lưu a[i] thì mình gán a[i] trực tiếp vô luôn được không

    • @28tech_
      @28tech_  2 роки тому

      Nó có bước cập nhật mà e, sẽ bị sai đó em.

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

    giảng đếm ko biết bao nhiêu chữ ok, hạn chế lại sẽ hay hơn

  • @LinhNguyen-ok6bp
    @LinhNguyen-ok6bp 2 роки тому

    anh cho em hỏi vs ạ,ở phần sắp xếp chọn em ko sử dụng biến min_pot để lưu giá trị nhỏ nhất, ở dưới em swap trực tiếp a[i] vs a[j] luôn ko cần thông qua biến min_pot vẫn ra kết quả đúng, làm như vậy có đc ko ạ

    • @28tech_
      @28tech_  2 роки тому

      Uh được em nó vẫn sort đc

  • @66.tranvuthang75
    @66.tranvuthang75 7 місяців тому

    Counting Sort O(n + k), nhưng khi triển khai code ở phần đếm tần suất là O(n), rồi đoạn in ra các phần tử có 2 for lồng nhau là O(n^2) => tổng là O(n) + O(n^2) đúng không ạ, hay e đang tính sai ạ

    • @28tech_
      @28tech_  7 місяців тому +1

      Nhìn nó là 2 for lồng nhưng thực tế tổng số lần mình in ra chỉ là b phần tử em ạ. Kèm thêm duyệt từ 0 tới k nữa

  • @NGUYENTHEPHAT-m4c
    @NGUYENTHEPHAT-m4c Рік тому

    @28tech_ Em thấy Bubble Sort không khác gì so với Interchange Sort phải không ạ?

    • @28tech_
      @28tech_  Рік тому +1

      Ko em ơi bubble hoán vị 2 thằng đứng cạnh nhau, interchange hoán đổi thằng a(i) vs những thằng đứng sau nó

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

      @@28tech_ Trong C không có khái niệm truyền tham chiếu mà chỉ có truyền tham trị với cả truyền con trỏ ở trong hàm phải không ạ?

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

    cái int cnt[10000001] trên đầu là gì vậy ạ. Là đếm nhưng e chưa bao h đêm kiểu này @@

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

    A ơi . S em tìm hiểu cùng là nổi bọtaf lại có quá nhiều cách làm vậy ạ . cùng là c++ mà mỗi người lại biến tấu cái vòng lặp for thứ 2 khác nhau ạ

    • @28tech_
      @28tech_  Рік тому +1

      Có 2 kiểu thôi em, 1 là đưa phần từ lớn nhất về cuối 2 là đưa phần tử nhỏ nhất về đầu

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

    hay quá idol

    • @28tech_
      @28tech_  3 роки тому

      OK e tú nhé.

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

    Ở cái bubble sort cho em hỏi tại sao i phải chạy đến n-2 v ạ nếu cho nó chạy đến phần tử cuối luôn thì sẽ ra sao

    • @28tech_
      @28tech_  2 роки тому

      Thì nó xét phần tử ko thuộc mảng

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

      @@28tech_ nếu vậy thì kết quả vẫn đúng chỉ có tốn thêm tgian chạy thôi đúng ko a

    • @28tech_
      @28tech_  2 роки тому +2

      @@datnee20318 không em ạ, phần tử ko thuộc mảng nó có thể rác nên có thể ảnh hưởng tới kết quả của em

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

      @@28tech_ vậy cho em hỏi luôn là biến i có thể được hiểu như là số lượt so sánh ko ạ

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

      Biến i là gì thế anh ơi

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

    Anh cho em hỏi tại sao khi khai báo thằng cnt[INT_MAX] trong int main() nó không chạy còn ở ngoài thì chạy bình thường vậy anh (nó bị tràn bộ nhớ hay sao ah).

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

      Uh ko khai báo đc mảng lớn cỡ đó trong main đâu

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

    A ơi giải thích giúp e e chưa hiểu 2 cái for đầu á anh😢

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

    em cảm ơn a

    • @28tech_
      @28tech_  2 роки тому

      Oke, chúc em học tốt

  • @it-erstyle6954
    @it-erstyle6954 2 роки тому

    sao phải khai báo cnt[] ở ngoài main thế a e cho vào hàm main thì ko được mặc dù e giới hạn cnt[20]

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

      Cnt 20 thì e chỉ đếm đc các phần tử nhỏ hơn hoặc bằng 20

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

      Khai báo ngoài main để tránh tràn stack

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

    Cộng phân phối xâu đi thầy

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

    Đã gọi là thuật toán thì k đc dùng những thư viện có sẵn như map hay set đúng k a :v

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

      Dùng bình thường đi :v. Thoải mái.

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

    cái INT_MIN là cg anh với lại dùng để làm gì ạ

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

      INT_MIN là giá trị nhỏ nhất của kiểu dữ liệu min, khi tìm số lớn nhất trong mảng thì hay khởi tạo biến đó là một giá trị rất nhỏ.

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

    10:44 em tưởng phải dùng toán tử & thì mới thay đổi mảng chứ anh?

  • @HieuVo-qt1xx
    @HieuVo-qt1xx 3 роки тому

    dễ hiểu quá a ơi

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

    a có dạy html css ko a

    • @28tech_
      @28tech_  Рік тому

      Anh có khoá front end đó, em tham khảo 28tech.com.vn/lap-trinh-front-end.html

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

    tại sao em khai báo int i ở trong vòng for nó cứ báo lỗi và bắt phải khai báo i ở bên ngoài vậy ạ :((

    • @28tech_
      @28tech_  Рік тому +1

      Do em đang code vs chuẩn C thấp quá. Em lưu file .cpp hoặc chạy chuẩn C cao hơn

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

      @@28tech_ dạ em cảm ơn anh

  • @B_E_N06
    @B_E_N06 16 днів тому

    tại sao lại là n - 1 v ạ em nghe đi nghe lại cx ko hình dung ra đc

    • @28tech_
      @28tech_  15 днів тому

      Vì mảng có n phần tử em chỉ cần đưa n-1 phần tử về vị trí thì thằng còn lại tự khắc sẽ về đúng vị trí nha

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

    cho em xin tài liệu pdf anh dùng này được không ạ

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

    anh ơi em có thắc mắc hơi ngu 1 tí là mình học những cách sắp xếp này để làm gì ạ, vì độ phức tạp của nó đều là O(n*2) và O(n+k)

  • @DuongLe-zz6du
    @DuongLe-zz6du Рік тому

    A ơi em xin file các thuật toán sắp xếp với ạ.

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

    Anh ơi web anh dùng chạy thử code là j vậy ạ em đang học chuyên tin nên cx cần bt ạ anh cho em xin với

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

      visual go thì phải em ạ.

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

      Em cảm ơn bao h anh lm một video review các web học tin anh ạ nhiều bạn cx giống như em đang cần bt cái đó

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

    Lâu rồi k thấy anh

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

      Hehe. Đợt này a bận quá.

  • @PhongTran-ul1rl
    @PhongTran-ul1rl 2 роки тому

    em góp ý xiu anh nói đừng ok đc k ạ

  • @-PhungAnhKhang-A
    @-PhungAnhKhang-A Рік тому

    counting sort mình dùng map được ko anh

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

      cho mình hỏi map là gì ạ, có thể học ở đâu

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

      ​​@@sunisshining2515ap nó gồm key và value (key là độc nhất), có thể thay đổi kích thước
      Nó cũng giống mảng thường nhưng key thì có thể là kiểu dữ liệu khác thay vì số nguyên ko âm
      như map["abc"], map[-1], map[1.5],...

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

    ah đừng có oke nữa oke -.- coi mà bực á oke
    oke

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

      haha :D, giờ ít nói ok rồi hehe.

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

    Anh dạy bên full house phải không nhỉ

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

      Uh thi thoảng mình nhận 1 lớp.

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

    mấy cái thuật toán này để làm gì khi đã có hàm sort hả anh :

    • @28tech_
      @28tech_  3 роки тому

      Haha. Đôi khi biết chỉ để có kiến thức thôi. 😆😆

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

      Cần không mình ném cái đề học sinh giỏi cho khỏi dùng cái hàm sort luôn

  • @HuyTran-pr8ug
    @HuyTran-pr8ug 2 роки тому +4

    miễn phí và chất lượng

    • @28tech_
      @28tech_  2 роки тому +2

      Quá chất lượng ấy chứ hehe.

    • @HuyTran-pr8ug
      @HuyTran-pr8ug 2 роки тому

      @@28tech_ t chưa hiểu lắm chỗ O(n+k) của counting_sort

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

      @@HuyTran-pr8ug Mình duyệt mảng 1 lần mất O(n) với lúc mình duyệt từ số nhỏ nhất tới k là số lớn nhất để in nữa.

    • @HuyTran-pr8ug
      @HuyTran-pr8ug 2 роки тому

      @@28tech_ t tưởng chỗ 2 vòng for là O(k^2) nhỉ

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

    cho em xin file pdf dc ko ạ

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

    in tơ chen sọt là dễ nhất rồi anh :)

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

    Hay quá anh :(((

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

      Ok em ơi ✌🏿✌🏿✌🏿. Hình như hôm trước e mail cho anh thì phải 😂😂😂

  • @Itn.2004
    @Itn.2004 2 роки тому

    Còn này là thuật toán sắp xếp gì a
    for(int i=0; i

    • @28tech_
      @28tech_  2 роки тому

      Này gọi là sắp xếp đổi chỗ trực tiếp

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

    #include
    using namespace std;
    int main(){
    int cnt[10000001];
    cout > n;
    int a[n];
    int m = INT_MIN;
    cout > a[i];
    cnt[a[i]]++;
    m = max(m,a[i]);
    }
    for (int i = 0; i

    • @28tech_
      @28tech_  Рік тому +1

      Em khai báo mảng cnt trong main bị tràn bộ nhớ stack, khai báo ngoài main thì nó được cấp phát bởi bộ nhớ heap nên ko bị tràn nữa