@techtipsvn
Thuật toán sắp xếp · Insertion sort

Insertion sort vẫn chạy trong thư viện chuẩn: JDK dưới 44 phần tử, Go dưới 12

Insertion sort vẫn chạy trong thư viện chuẩn.

2026-08-1907 slide2 phút đọcGiải thích
Slide bìa: Insertion sort vẫn chạy trong thư viện chuẩn: JDK dưới 44 phần tử, Go dưới 12Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7
cuộn, vuốt, hoặc phím ←→01 / 07

Cùng một bài, đọc bằng chữ. Nhanh hơn và tìm lại được bằng Ctrl+F.

Xếp bài trên tay

  1. Trên tay3 7 — hai lá đã đúng thứ tự
  2. Rút lá 5So từ phải sang: 7 lớn hơn 5, dịch 7 sang phải
  3. Dừng ở 33 nhỏ hơn 5, đặt 5 vào ngay sau 3
  4. Kết quả3 5 7. Lặp lại đúng vậy với lá tiếp theo

Số thật trong thư viện chuẩn

JDK 8 chuyển sang insertion sort khi đoạn còn dưới 47 phần tử, JDK 17 dưới 44. Go đặt ngưỡng 12. Python trộn từng đoạn 32 đến 64 phần tử. Ở cỡ đó nó thắng cả quick sort.

Vì sao nó thắng ở mảng nhỏ

Big-O nói về xu hướng khi n lớn, không nói về mảng 20 phần tử. Ở cỡ đó, chi phí chia mảng và gọi đệ quy của quick sort còn đắt hơn việc dịch vài phần tử.

Mảng gần đúng thì gần như O(n)

Mỗi phần tử chỉ dịch vài bước nên tổng công việc gần tuyến tính. Đây là nhanh thật, không phải nhanh trên lý thuyết, và là lý do Timsort đi tìm sẵn các đoạn đã đúng thứ tự.

Insertion sort: được gì, mất gì

Ưu điểm

Mảng gần đúng thứ tự chạy gần như O(n)

Ổn định, và sắp xếp tại chỗ

Chèn được dữ liệu đến dần, không chạy lại

Nhược điểm

Mảng ngẫu nhiên tốn khoảng n²/4 phép dịch

Dịch nhiều nên tốn khi phép ghi đắt

Chỉ hợp mảng nhỏ, luôn là bước phụ

Lưu lại để chạy tay sau

Loạt bài thuật toán sắp xếp cho dev Việt Nam.

techtipstechtipsvnthuattoanlaptrinhhoclaptrinh
Đọc tiếp

Bài khác cùng chủ đề

Slide bìa: React Native 0.88: thêm SceneDelegate trước khi build bằng Xcode 2709

React Native 0.88: thêm SceneDelegate trước khi build bằng Xcode 27

feature2′ đọc19.10
Slide bìa: Copilot ngừng Claude Opus 4.8, Opus 5 và GPT-5.6 Terra ngày 16/11: đổi sang model nào07

Copilot ngừng Claude Opus 4.8, Opus 5 và GPT-5.6 Terra ngày 16/11: đổi sang model nào

Tin1′ đọc18.10
Slide bìa: Review bằng AI khiến PostgreSQL 19 gỡ 8–10 tính năng? Người viết code kể lại09

Review bằng AI khiến PostgreSQL 19 gỡ 8–10 tính năng? Người viết code kể lại

Tin2′ đọc17.10
Slide bìa: AVIF nhẹ hơn, JPEG XL giữ ảnh .jpg cũ: chọn định dạng ảnh nào cho web?08

AVIF nhẹ hơn, JPEG XL giữ ảnh .jpg cũ: chọn định dạng ảnh nào cho web?

Giải thích2′ đọc17.10

Mỗi ngày một bài mới.

Mẹo, giải thích và tin công nghệ cho sinh viên và dev mới đi làm. Một người viết, đăng đều.

Bài cũng được đăng lên TikTok, ở dạng slide.

TikTok@techtipsvn