Đệ quy tìm kiếm mảng php
Chào ace, bài này chúng ta sẽ tìm hiểu về một trong các thuật toán sắp xếp được sử dụng nhiều trong lập trình và thực tế nhất đó là Binary Search, sau đây cafedev sẽ giới thiệu và chia sẻ chi tiết(khái niệm, ứng dụng) Show Nội dung chính 1. Giới thiệuCho một mảng sắp xếp arr [] bao gồm n phần tử, hãy viết một hàm để tìm kiếm một phần tử x đã chọn trong mảng [] Một cách tiếp cận đơn giản là thực hiện tìm kiếm tuyến tính (Linear Search), độ phức tạp thời gian của thuật toán trên O (n). Một cách tiếp cận khác để thực hiện các nhiệm vụ tương tự là sử dụng Tìm kiếm nhị phân tìm kiếm Tìm kiếm nhị phân phân(Binary Search). Tìm kiếm một mảng được sắp xếp theo cách chia đôi khoảng thời gian tìm kiếm nhiều lần. Bắt đầu với một khoảng bao gồm toàn bộ mảng. Nếu giá trị của khóa tìm kiếm tìm kiếm nhỏ hơn mục ở khoảng giữa, hãy kéo theo khoảng đó xuống nửa bên dưới. Nếu không, hãy kéo nó ở nửa trên. lặp lại kiểm tra cho đến khi giá trị được tìm thấy hoặc khoảng thời gian trống Ý tưởng của việc tìm kiếm nhị phân tìm kiếm là sử dụng thông tin mà mảng được sắp xếp và giảm độ phức tạp về thời gian thành O (Log n) Về cơ bản chúng ta bỏ qua một nửa số phần tử chỉ sau một lần so sánh
2. Ví dụ mã trên nhiều ngôn ngữ2. 1 Triển khai đệ quy với Tìm kiếm nhị phân (Tìm kiếm nhị phân)C++
C
Java
Trăn 3
C#
PHP
Kết quả
2. 2 Thực hiện vòng lặp lại để tìm kiếm nhị phân tìm kiếm (Tìm kiếm nhị phân)C++
C ________số 8Java
Trăn 3 0C# 1PHP 2Kết quả
3. Độ phức tạpPhức tạp thời gian Độ phức tạp về thời gian của Tìm kiếm nhị phân phân tích có thể được viết là T(n) = T(n/2) + c Sự cố lặp lại ở trên có thể được giải quyết bằng cách sử dụng cây phương pháp đệ quy hoặc phương pháp Master. Nó nằm trong trường hợp II của Phương pháp Master và giải pháp của sự tái diễn là 4 (Đăng nhập)Không hỗ trợ khoảng thời gian. O (1) in an Case to the repeat off. Trong trường hợp thực hiện đệ quy, không gian ngăn xếp gọi đệ quy O (Logn) Nguồn và Tài liệu tiếng anh tham khảo
Tài liệu từ cafedev
Nếu thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa |