Tìm kiếm nhị phân (Sử dụng đệ quy)

Giới thiệu Tìm kiếm nhị phân (Binary Search) hay còn gọi là tìm kiếm nửa khoảng (half-interval search), tìm kiếm logarit (logarithmic search), hay binary chop, là một thuật toán tìm kiếm xác định vị trí của một giá trị cần tìm trong một mảng đã được sắp xếp. Thuật toán tiến hành so sánh

Tìm kiếm tuyến tính – Linear Search

Giới thiệu Tìm kiếm tuyến tính (hay còn gọi là tìm kiếm tuần tự) là một phương pháp để tìm kiếm một phần tử trong danh sách. Nó sẽ kiểm tra tuần tự tất cả các phần tử trong danh sách cho đến khi nào tìm ra phần tử đó thì trả về, nếu không

Sắp xếp nhanh – Quick Sort

Giới thiệu Thuật toán Quick Sort (Sắp xếp nhanh) là một trong những thuật toán sắp xếp hiệu quả nhất và dựa trên việc chia một mảng thành các mảng nhỏ hơn. Sắp xếp nhanh có khả năng sắp xếp danh sách các yếu tố dữ liệu nhanh hơn đáng kể so với bất kỳ

Sắp xếp trộn – Merge Sort

Giới thiệu Thuật toán sắp xếp Merge Sort là một trong những thuật toán có độ phức tạp ở mức trung bình và cùng sử dụng phương pháp chia để trị giống thuật toán sắp xếp nhanh Quicksort rồi gọi đệ quy chính nó trên các phân vùng đã chia. Thuật toán này không chỉ

Sắp xếp chèn – Insertion Sort

Giới thiệu Sắp xếp chèn (Insertion sort) là một thuật toán sắp xếp in-place, bắt chước cách sắp xếp quân bài của những người chơi bài. Muốn sắp một bộ bài theo trật tự người chơi bài rút lần lượt từ quân thứ 2, so với các quân đứng trước nó để chèn vào vị

[Thực hành] Triển khai Observer

Mục tiêu Luyện tập triển khai observer pattern. Mô tả Viết chương trình khi người dùng nhập vào một số nguyên, thực hiện chuyển đổi số nguyên sang các hệ số Hex, Oct, Binary. Việc chuyển đổi được thực hiện trên từng lớp HexObserver, OctObserver, BinObserver. Khi có bất cứ số nguyên nào được yêu

[Thực hành] Triển khai Template Method

Mục tiêu Luyện tập triển khai template method pattern. Mô tả Meal là lớp trừu tượng có một số phương thức doMeal() để thực hiện tạo một bữa ăn gồm: chuẩn bị, nấu nướng, ăn, dọn dẹp. prepateIngredients() để chuẩn bị nấu ăn cook() thực hiện nấu ăn eat() thực hiện ăn cleanup() thực hiện

[Thực hành] Triển khai Strategy

Mục tiêu Luyện tập việc áp dụng Strategy trong các tình huống thực tế. Mô tả Triển khai Strategy thông qua một ứng dụng quản lý sách như hướng dẫn ở đây: https://sourcemaking.com/design_patterns/strategy/java/1 Nếu không áp dụng Strategy thì giải pháp có thể là gì? Đâu là những lợi ích của Strategy so với giải pháp