Đang tải…
Chạy, tạm dừng, tua từng bước qua các thuật toán kinh điển — với mã nguồn thật ở nhiều ngôn ngữ, ngay trong trình duyệt.
Duyệt qua danh sách nhiều lần, hoán đổi các cặp liền kề sai thứ tự để phần tử lớn nhất 'nổi' dần về cuối.
Mỗi lượt tìm phần tử nhỏ nhất trong phần chưa sắp xếp rồi đưa lên đầu.
Xây dựng mảng đã sắp xếp từng phần tử một, chèn mỗi phần tử mới vào đúng vị trí trong đoạn đầu đã sắp.
Chia để trị: chọn một pivot, phân hoạch các giá trị quanh nó, rồi đệ quy sắp xếp hai phía.
Chia để trị: chia đôi mảng, sắp xếp từng nửa, rồi trộn hai nửa đã sắp lại với nhau.
Xây max-heap rồi liên tục đưa gốc (lớn nhất) về cuối và khôi phục heap — tại chỗ và O(n log n) trong mọi trường hợp.
Bản tổng quát của insertion sort theo 'bước nhảy': sắp các phần tử cách xa trước, thu nhỏ dần bước nhảy đến khi thành một lượt insertion sort thường.
Bubble sort hai chiều: mỗi vòng đẩy phần tử lớn nhất sang phải rồi nhỏ nhất sang trái, thu hẹp dần từ hai đầu.
Kiểm tra lần lượt từng phần tử cho đến khi tìm thấy hoặc hết mảng. Hoạt động với mọi mảng, dù có sắp xếp hay không.
Trên mảng đã sắp xếp, liên tục chia đôi vùng tìm bằng cách so sánh phần tử giữa với target — O(log n).
Trên mảng đã sắp xếp, nhảy theo khối cố định √n cho đến khi vượt qua target, rồi quét tuyến tính trong khối cuối.
Giống tìm kiếm nhị phân nhưng ước lượng vị trí dò từ giá trị target — gần O(log log n) trên dữ liệu phân bố đều.
Nhân đôi cận chỉ số cho đến khi vượt target, rồi tìm nhị phân trong khoảng đó — rất hợp cho dữ liệu sắp xếp rất lớn hoặc không biết kích thước.
Lan tỏa theo từng vòng từ điểm bắt đầu, đảm bảo đường đi ít bước nhất trên lưới không trọng số.
Đi sâu hết mức theo một nhánh rồi mới quay lui. Tìm được đường đi, nhưng không nhất thiết ngắn nhất.
Luôn mở rộng nút gần nhất bằng hàng đợi ưu tiên, cho đường đi ngắn nhất kể cả khi các ô có chi phí khác nhau (trọng số).
Giống Dijkstra nhưng dùng hàm heuristic kéo hướng tìm về đích — nên duyệt ít ô hơn nhiều mà vẫn cho đường ngắn nhất.
Luôn mở rộng nút trông gần đích nhất chỉ dựa trên heuristic. Rất nhanh và nhắm hướng, nhưng đường đi không đảm bảo ngắn nhất.
Điền bảng với dp[i][j] là độ dài LCS của i và j ký tự đầu — mỗi ô suy ra từ ô chéo, trên hoặc trái.
Khoảng cách Levenshtein: số phép chèn/xóa/thay tối thiểu để biến chuỗi này thành chuỗi kia, dựng từng ô một.
Duyệt Trái → Gốc → Phải. Trên cây tìm kiếm nhị phân, cho ra các giá trị theo thứ tự tăng dần.
Duyệt Gốc → Trái → Phải. Hữu ích để sao chép cây hoặc tuần tự hóa cấu trúc.
Duyệt Trái → Phải → Gốc. Con được xử lý trước cha — tiện để xóa hoặc tính giá trị cây.
Theo chiều rộng: duyệt cây từng tầng một, trái sang phải, dùng hàng đợi.
Đi xuống từ gốc, rẽ trái hoặc phải bằng cách so sánh target với từng nút — O(log n) trên cây cân bằng.
Đặt N quân hậu lên bàn cờ N×N sao cho không quân nào cùng hàng, cột hay đường chéo — thử từng cột theo hàng và quay lui khi xung đột.
Bài toán đệ quy kinh điển: chuyển chồng đĩa sang cọc khác, không bao giờ đặt đĩa lớn lên đĩa nhỏ. Giải trong 2ⁿ − 1 bước.