Trang chủ » Blog » Thuật toán » [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn – Insertion Sort

[Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn – Insertion Sort

bởi ngoctran2 | 23/07/2024 08:33 | Blog | Thuật toán

Nối tiếp thành công của bài viết đầu tiên, trong chuỗi bài “Mỗi ngày 1 thuật toán”, mang tên: Thuật toán sắp xếp nổi bọt. Hôm nay, CodeGym sẽ mang đến cho bạn những hướng dẫn chi tiết về Thuật toán sắp xếp chèn, bằng các mã nguồn Java, PHP và Python.

1. Ý tưởng chính của Thuật toán sắp xếp chèn

  • Chia mảng thành hai phần: phần đã sắp xếp và phần chưa sắp xếp.
  • Lần lượt lấy từng phần tử từ phần chưa sắp xếp và chèn vào vị trí thích hợp trong phần đã sắp xếp.

Cụ thể, thuật toán sẽ lặp qua từng phần tử của mảng, bắt đầu từ phần tử thứ hai. Với mỗi phần tử, nó sẽ so sánh và chèn phần tử đó vào vị trí thích hợp trong phần đã sắp xếp (các phần tử từ đầu mảng đến phần tử trước đó).

2. Quá trình diễn ra chi tiết của Thuật toán sắp xếp chèn

  • Lấy phần tử đầu tiên làm phần đã sắp xếp, phần còn lại là phần chưa sắp xếp
  • Lặp qua các phần tử trong phần chưa sắp xếp:
    • Lấy phần tử đầu tiên trong phần chưa sắp xếp.
    • So sánh và chèn phần tử đó vào vị trí thích hợp trong phần đã sắp xếp.
    • Cập nhật phần đã sắp xếp và phần chưa sắp xếp.
  • Lặp lại bước 2 cho đến khi phần chưa sắp xếp trống.

3. Ví dụ minh hoạ cho Thuật toán sắp xếp chèn

Cho mảng: [5, 2, 4, 6, 1, 3]

  • Bước 1: Xét phần tử đầu tiên 5, vì đây là phần tử duy nhất nên không cần sắp xếp.
  • Bước 2: Xét phần tử thứ hai 2, chèn 2 vào trước 5. Lúc này ta được: [2, 5, 4, 6, 1, 3]
  • Bước 3: Xét phần tử thứ ba 4, chèn 4 vào giữa 25. Lúc này ta được: [2, 4, 5, 6, 1, 3]
  • Bước 4: Xét phần tử thứ tư 6, giữ nguyên vị trí. Lúc này ta được: [2, 4, 5, 6, 1, 3]
  • Bước 5: Xét phần tử thứ năm 1, chèn 1 vào đầu mảng. Lúc này ta được: [1, 2, 4, 5, 6, 3]
  • Bước 6: Xét phần tử thứ sáu 3, chèn 3 vào giữa 24. Lúc này ta được: [1, 2, 3, 4, 5, 6]

    Như vậy, mảng đã được sắp xếp theo thứ tự tăng dần.

    4. Hình ảnh minh hoạ cho Thuật toán sắp xếp chèn

    [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn

    5. Pseudo code 

    [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn

    6. Mã nguồn trong Java

    [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn
    7. Mã nguồn trong PHP

    [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn

    8. Mã nguồn trong Python

    [Mỗi ngày 1 thuật toán] Thuật toán sắp xếp chèn

    Xem thêm các bài viết thú vị về Thuật toán tại đây!

    0 Lời bình

    Gửi Lời bình

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

    BÀI VIẾT LIÊN QUAN

    BẠN MUỐN HỌC LẬP TRÌNH?

    GỌI NGAY

    098 953 44 58

    Đăng ký tư vấn lộ trình học lập trình

    Đăng ký tư vấn, định hướng lộ trình học và giải đáp các thắc mắc về ngành nghề – Miễn phí – Online.

    5 + 10 =

    TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM
    TƯ VẤN VỀ LỘ TRÌNH HỌC NGHỀ LẬP TRÌNH TẠI CODEGYM