Tìm kiếm nhị phân

1. Khái niệm Tìm kiếm nhị phân (Binary Search) là kỹ thuật tìm kiếm phần tử trong mảng đã được sắp xếp bằng cách chia đôi dãy số nhiều lần. Ý tưởng: So sánh phần tử cần tìm (x) với giá trị ở giữa (a[mid]). Nếu (a[mid] == x) → tìm thấy. Nếu (x < a[mid]) → tìm trong...

[C++] – Sắp xếp

Giới thiệu: Hàm sort trong C++ được cung cấp trong thư viện <algorithm>. Đây là một trong những hàm thường dùng nhất trong lập trình, đặc biệt là trong các bài toán thi đấu thuật toán. Hàm này có nhiệm vụ sắp xếp dãy phần tử trong một phạm vi nhất định (thường...

[LEETCODE 2787] – Ways to Express an Integer as Sum of Powers

Đề gốc: https://leetcode.com/problems/ways-to-express-an-integer-as-sum-of-powers/ Bản dịch: https://oj.program.edu.vn/problem/cpa_weisp Tóm tắt: Đếm số cách viết $n$ thành tổng các lũy thừa bậc $x$ của các số nguyên dương khác nhau:$n = n_1^x + n_2^x + \cdots +...

Z-functions

Z-function là gì? Z-function là một kỹ thuật trong xử lý chuỗi (string processing), thường dùng trong các bài toán liên quan đến việc tìm kiếm mẫu con (pattern matching). Cho một chuỗi S có độ dài n, Z-function là một mảng Z[] cũng có độ dài n, trong đó: Z[i] là độ...

Kỹ thuật HASH trong lập trình

Kỹ thuật Hashing (băm) là một trong những phương thức quan trọng và phổ biến nhất trong lập trình hiện đại, đặc biệt khi làm việc với dữ liệu có cấu trúc và có yêu cầu truy cập/truy vấn nhanh. Hashing là quá trình chuyển đổi dữ liệu gốc (thường là một khóa như số...

Hey!!!!

Đây có phải là những gì bạn đang tìm kiếm?

[C++] – Sắp xếp

Hàm sort trong C++ được cung cấp trong thư viện . Đây là một trong những hàm thường dùng nhất trong lập trình, đặc biệt là trong các bài toán thi đấu thuật toán. Hàm này có nhiệm vụ sắp xếp dãy phần tử trong một phạm vi nhất định (thường là mảng hoặc vector) theo một tiêu chí cho trước.

read more

Z-functions

Z-function là một kỹ thuật mạnh mẽ và dễ cài đặt trong xử lý chuỗi. Nó đặc biệt hữu ích trong lập trình thi đấu và các bài toán pattern matching, kiểm tra tính lặp, hoặc tiền tố đặc biệt. Nắm vững Z-function giúp bạn xử lý hiệu quả nhiều bài toán chuỗi tưởng như rất phức tạp.

read more

Kỹ thuật HASH trong lập trình

Kỹ thuật Hashing (băm) là một trong những công cụ quan trọng và phổ biến nhất trong lập trình hiện đại, đặc biệt khi làm việc với dữ liệu lớn hoặc yêu cầu truy cập nhanh. Hashing là quá trình chuyển đổi dữ liệu (thường là một khóa như số nguyên, chuỗi…) thành một giá trị khác gọi là hash value bằng một hàm băm (hash function)

read more