Tổng hợp các thuật toán quan trọng như tìm đường đi, sắp xếp, tìm kiếm, lọc cộng tác và nhiều kỹ thuật xử lý dữ liệu khác. Nội dung tập trung vào bản chất, ưu nhược điểm và ứng dụng thực tế.
Game 2048 nhìn rất đơn giản, nhưng nếu mục tiêu là viết một bot tự động chơi đến 2048, 4096, thậm chí 8192 một cách ổn định, thì đây không chỉ là trò chơi giải...
AES (Advanced Encryption Standard) là thuật toán mã hóa đối xứng phổ biến nhất thế giới hiện nay. Từ HTTPS, ứng dụng ngân hàng, WiFi WPA2/WPA3, đến mã hóa file trong hệ điều hành –...
Base64 là một kỹ thuật mã hóa biểu diễn dữ liệu (encoding), không phải mã hóa bảo mật (encryption). Nó giúp chuyển dữ liệu nhị phân (byte) thành một chuỗi ký tự an toàn để...
Vigenère Cipher là một dạng polyalphabetic substitution cipher, có thể xem như “bản nâng cấp” của Caesar Cipher. Thay vì dùng một số dịch (shift) cố định cho toàn bộ văn bản, Vigenère dùng một...
Caesar Cipher là một trong những thuật toán mã hóa cổ điển đơn giản nhất, thường được dùng để giới thiệu khái niệm substitution cipher (mã hóa thay thế ký tự). Dù ngày nay không...
Hashing là một kỹ thuật cực kỳ quan trọng trong bảo mật và lập trình hiện đại. Từ việc lưu mật khẩu, ký số, kiểm tra tính toàn vẹn file, đến tạo identifier cho dữ...
Cryptography (mật mã học) là nền tảng của bảo mật hiện đại. Từ việc bạn đăng nhập Facebook, gửi tin nhắn Zalo, thanh toán ngân hàng, tới HTTPS khi truy cập trang web – tất...
Mã hoá (cryptography) không chỉ nằm trong các hệ thống bảo mật lớn mà xuất hiện khắp nơi trong lập trình hiện đại: từ lưu mật khẩu, truyền dữ liệu qua HTTPS, mã hoá JWT,...
Sau khi lần lượt tìm hiểu ba thuật toán cache cơ bản là FIFO, LRU và LFU, bước cuối cùng hợp lý nhất là đặt chúng cạnh nhau để so sánh. Trong thực tế, mỗi...
LFU (Least Frequently Used) là một trong những thuật toán thay thế trang mạnh mẽ nhất vì dựa trên tần suất truy cập. Khi cache đầy, thuật toán sẽ loại bỏ phần tử được sử...
LRU (Least Recently Used) là một trong những thuật toán cache phổ biến và thực tế nhất hiện nay. Ý tưởng của LRU rất trực quan: ưu tiên giữ lại những dữ liệu vừa được...
FIFO là một trong những thuật toán thay thế trang (cache replacement) đơn giản và dễ hiểu nhất. Khi cache đầy, phần tử nào vào trước sẽ bị loại khỏi cache trước — hoạt động...
Trong các hệ thống máy tính hiện đại — từ trình duyệt web, ứng dụng di động, CDN cho đến Redis, Memcached và cả hệ điều hành — cache đóng vai trò vô cùng quan...
Các nút giao thông hiện đại không chỉ bật đèn theo chu kỳ cố định mà còn có thể “nhìn” vào thực tế xem mỗi hướng đang đông hay vắng xe. Một trong những cách...
Thuật toán điều khiển đèn giao thông (Traffic Signal Control Algorithms) là một mảng ứng dụng rất thực tế trong khoa học máy tính và kỹ thuật giao thông. Từ các ngã tư nhỏ trong...
Một thang máy đã đủ nhức đầu, nhưng toà nhà văn phòng hiện đại thường có cả dàn thang chạy song song. Khi đó, vấn đề không chỉ là “thang này đi lên hay xuống?”...
Ở những toà nhà văn phòng/xịn xò, bạn không bấm tầng trong cabin nữa mà nhập tầng ngay ở sảnh, rồi hệ thống chỉ bạn qua thang A, B, C, D… Đó chính là kiểu...
Khi đứng trước thang máy chung cư, bạn chỉ thấy hai nút Up và Down, bấm xong thì… chờ thang tới. Nhưng đằng sau hai nút đơn giản đó là cả một cơ chế điều...
Trong bài 1, ta đã xem qua thuật toán thang máy Up/Down cơ bản: thang chọn một hướng, xử lý các request theo hướng đó, rồi chỉ đổi hướng khi không còn yêu cầu nào...
Đây là thuật toán đơn giản nhất nhưng lại là “tư duy gốc” của hầu hết hệ thang máy thật ngoài đời. Ý tưởng của Up/Down rất tự nhiên: chọn một hướng, xử lý tất...
Công cụ trực tuyến
Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.