Các thuật toán sắp xếp phổ biến trong Java mà lập trình viên nên nắm vững

Trong lập trình, việc hiểu và triển khai các thuật toán sắp xếp là kỹ năng thiết yếu. Dưới đây là 8 thuật toán tiêu biểu được phân loại theo cơ chế hoạt động, kèm theo minh họa code Java đã được viết lại để dễ đọc và tối ưu hơn. 1. Sắp xếp chèn trực tiếp Ý tưởng: Duyệt từng phần tử, chèn nó vào đúng vị trí trong dãy đã sắp xếp phía trước. publ ...

Đăng vào ngày 3 tháng 6 lúc 18:44

Cây K-D

Cây K-D là một cấu trúc dữ liệu có khả năng xử lý các vấn đề trong không gian đa chiều. Nó được tổ chức dưới dạng một cây nhị phân tìm kiếm, chia nhỏ không gian nhiều chiều thành các phần và đảm bảo rằng tọa độ của nút nào đó trên một trục nhất định sẽ lớn hơn tất cả các nút bên trái và nhỏ hơn tất cả các nút bên phải. Xây dựng Cây K-D Để xây d ...

Đăng vào ngày 3 tháng 6 lúc 17:34

Các bài toán xử lý danh sách liên kết trên LeetCode

21. Gộp hai danh sách liên kết đã sắp xếp Cho hai danh sách liên kết tăng dần, hãy gộp chúng thành một danh sách mới cũng theo thứ tự tăng dần. ListNode* merge(ListNode* a, ListNode* b) { if (!a) return b; if (!b) return a; if (a->val < b->val) { a->next = merge(a->next, b); return a; } else { ...

Đăng vào ngày 2 tháng 6 lúc 21:43

Cách Triển Khai Base64 Trong PHP Bằng Các Phép Toán Bit

Base64 là một phương pháp mã hóa nhị phân thành chuỗi văn bản ASCII, thường được dùng để truyền dữ liệu nhị phân qua các kênh chỉ hỗ trợ ký tự in được. Việc hiểu rõ cơ chế hoạt động — đặc biệt là cách xử lý bit — giúp lập trình viên không chỉ sử dụng hàm base64_encode() và base64_decode() một cách thụ động, mà còn chủ động kiểm soát, tùy chỉnh ...

Đăng vào ngày 2 tháng 6 lúc 01:21

Kỷ niệm giải Lianqiao 2025 Python B

Tôi là người mới học lập trình, bài viết này chỉ nhằm ghi lại suy nghĩ và mã nguồn của tôi trong cuộc thi lần này. Mong các bạn có kinh nghiệm hơn góp ý nếu có sai sót. Đề bài A: Số lần tấn công Thực hiện mô phỏng đơn giản với giá trị hp ban đầu là 2025, tính toán theo quy tắc modulo cho từng nhân vật. Kết quả thu được là 103. hp = 2025 round_ ...

Đăng vào ngày 30 tháng 5 lúc 06:55

Kiểm tra số đối xứng bằng toán học không dùng chuỗi

Đề bài Cho một số nguyên x, hãy xác định xem nó có phải là số đối xứng hay không. Một số được gọi là đối xứng nếu đọc từ trái sang phải hay từ phải sang trái đều cho cùng một giá trị. Ví dụ: 121 là số đối xứng, trong khi 123 thì không. Ví dụ minh họa Ví dụ 1: Đầu vào: x = 121 Đầu ra: true Ví dụ 2: Đầu vào: x = -121 Đầu ...

Đăng vào ngày 30 tháng 5 lúc 00:48

Khảo sát Cấu trúc Dữ liệu Mảng và Thuật toán Cơ bản trong C

1. Khảo sát vùng nhớ của mảng một chiều và hai chiều Đoạn mã dưới đây minh họa cách bộ nhớ được cấp phát cho các mảng trong C. Chúng ta sẽ kiểm tra kích thước thực tế占用 (sizeof) và địa chỉ của từng phần tử để xác định tính liên tục của vùng nhớ. #include <stdio.h> #define SIZE_1D 4 #define ROWS 2 #define COLS 4 void analyze_1d() { ...

Đăng vào ngày 27 tháng 5 lúc 21:43

Viết chương trình dòng lệnh tự động sinh bài tập toán tiểu học bốn phép tính

Mục tiêu của dự án là xây dựng một ứng dụng dòng lệnh trên nền tảng Java, có khả năng tự động tạo ngẫu nhiên các bài tập toán cơ bản dành cho học sinh tiểu học — bao gồm cộng, trừ, nhân, chia — với các ràng buộc phù hợp: kết quả không âm, số hạng nằm trong phạm vi cho trước, và đảm bảo tính duy nhất của từng biểu thức. Chương trình được thiết ...

Đăng vào ngày 27 tháng 5 lúc 20:42

Giải chi tiết các bài toán Codeforces 918 (Div 4)

Problem A - Tìm phần tử khác biệt Cho ba số nguyên a, b, c. Trong đó có hai số bằng nhau, cần tìm số còn lại. Giải thuật: Kiểm tra các cặp bằng nhau, nếu a == b thì đáp án là c, tương tự cho các trường hợp khác. #include<bits/stdc++.h> using namespace std; int main() { long long test; cin >> test; while(test--) { ...

Đăng vào ngày 27 tháng 5 lúc 09:40

Cấu Trúc Dữ Liệu Ngăn Xếp: Cơ Chế Và Các Trường Hợp Sử Dụng

Khái niệm cơ bản về Ngăn xếp (Stack) Ngăn xếp (Stack) là một dạng cấu trúc dữ liệu tuyến tính, nơi mà các thao tác thêm mới hoặc xóa bỏ phần tử chỉ được phép thực hiện tại một đầu duy nhất. Đầu này được gọi là đỉnh ngăn xếp (Top), trong khi đầu đối diện được xem là đáy (Bottom). Thao tác đưa phần tử vào ngăn xếp được gọi là đẩy (Push), còn thao ...

Đăng vào ngày 25 tháng 5 lúc 12:20