Khi chúng tôi cố gắng xây dựng một thuật toán cho một vấn đề mới, phân chia và chinh phục (sử dụng đệ quy) là một trong những cách tiếp cận đầu tiên mà chúng tôi thử. Nhưng trong một số trường hợp, cách tiếp cận này dường như không có kết quả khi vấn đề trở nên phức tạp hơn nhiều khi đầu vào của nó phát triển.
Câu hỏi của tôi là: có vấn đề nào mà chúng ta có thể chứng minh rằng phương pháp phân chia và chinh phục không thể giúp giải quyết? Trong các dòng sau tôi cố gắng làm cho điều này trang trọng hơn.
Đặt là một vấn đề nhất định có đầu vào có kích thước (ví dụ: một vấn đề chấp nhận đầu vào là một mảng gồm số). Giả sử chúng ta có một thuật toán đệ quy để giải . Thời gian chạy đệ quy của thuật toán đó được tính toán giả sử một nhà tiên tri có thể giải cho mọi trong thời gian không đổi. Ví dụ:n n P ( n )k < n
- Thời gian chạy đệ quy của tìm kiếm nhị phân là , vì nó chỉ sử dụng so sánh và hai cuộc gọi đệ quy.
- Phần tử tối đa trong một mảng có thể được tìm thấy trong thời gian đệ quy .
- Thời gian chạy đệ quy của sắp xếp hợp nhất là , vì bước hợp nhất.
Thời gian đệ quy thường nhỏ hơn thời gian chạy thực tế, điều này phản ánh thực tế rằng thuật toán đệ quy đơn giản hơn một giải pháp không đệ quy đơn giản cho cùng một vấn đề.
Bây giờ câu hỏi của tôi là:
Có một vấn đề có thể được giải quyết trong thời gian , nhưng có thể chứng minh không có thuật toán đệ quy với thời gian chạy đệ quy không có triệu chứng nhỏ hơn ?
Một số biến thể cụ thể của câu hỏi này là:
- Có vấn đề nào trong không có thuật toán với thời gian chạy đệ quy không? (Có thể sắp xếp?)
- Có một vấn đề với một thuật toán hàm mũ không có thuật toán với thời gian chạy đệ quy đa thức?
EDIT: trái với dự đoán của tôi, sắp xếp có một thuật toán với thời gian chạy đệ quy . Vì vậy, nó vẫn mở, cho dù có một vấn đề trong không có thuật toán với thời gian chạy đệ quy O ( 1 ) .