Mục lục:

Tính tổng đệ quy một mảng trong Java: 9 bước
Tính tổng đệ quy một mảng trong Java: 9 bước

Video: Tính tổng đệ quy một mảng trong Java: 9 bước

Video: Tính tổng đệ quy một mảng trong Java: 9 bước
Video: Cấu trúc dữ liệu & Giải thuật [06]: Đệ quy - #Recursion 2024, Tháng mười một
Anonim
Tính tổng đệ quy một mảng trong Java
Tính tổng đệ quy một mảng trong Java

Đệ quy là một thủ tục rất hữu ích và hiệu quả về thời gian, có thể nhanh chóng giải quyết một vấn đề với rất ít mã. Đệ quy liên quan đến phương thức bạn tạo tự gọi để rút ngắn vấn đề ban đầu.

Đối với ví dụ này, chúng tôi sẽ tính tổng một mảng gồm 10 số nguyên, nhưng kích thước có thể có độ dài bất kỳ.

Quân nhu

Bạn nên biết cú pháp java cơ bản và có IDE của bạn hoặc một trình soạn thảo văn bản để viết mã của bạn cho tác vụ này.

Bước 1: Thiết lập phương pháp chính của bạn

Thiết lập phương pháp chính của bạn
Thiết lập phương pháp chính của bạn

Để bắt đầu, hãy thiết lập phương thức chính của bạn trong một lớp mới được tạo. Tôi đã đặt tên cho lớp của mình là RecursiveSum. Đây là nơi bạn sẽ tạo mảng các số nguyên và gọi phương thức đệ quy của mình.

Bước 2: Tạo tiêu đề phương thức đệ quy của bạn

Tạo tiêu đề phương thức đệ quy của bạn
Tạo tiêu đề phương thức đệ quy của bạn

Bên ngoài phương thức chính của bạn, hãy tạo tiêu đề phương thức cho phương thức đệ quy của bạn.

Phương thức là tĩnh, vì nó sẽ không yêu cầu một đối tượng sử dụng nó.

Kiểu trả về là int, vì mảng chúng ta sẽ sử dụng sẽ chứa đầy các số nguyên. Tuy nhiên, điều này có thể được thay đổi thành bất kỳ loại số nào mà mảng chứa.

Tôi đã đặt tên cho phương thức của mình là recursiveSum sẽ nhận hai tham số; một mảng các số nguyên và chỉ số mà chúng ta sẽ thêm vào tổng. Tôi đã gọi các tham số này là số và chỉ mục tương ứng.

Bạn sẽ thấy lỗi ngay bây giờ và điều đó là tốt. Chúng sẽ được sửa sau này.

Bước 3: Tạo Kicker / Vỏ cơ sở của bạn

Tạo Kicker / case cơ sở của bạn
Tạo Kicker / case cơ sở của bạn

Một phương thức đệ quy cần một kicker / base case. Đây là điều kiện sẽ ngăn phương thức của bạn tự gọi vô hạn. Trường hợp cơ sở này có thể được coi là trường hợp đơn giản nhất mà chúng ta sẽ gặp phải. Trong trường hợp này, trường hợp cơ sở sẽ là khi chúng ta ở cuối mảng của chúng ta. Nếu chỉ số hiện tại bằng độ dài của mảng (trừ đi 1 vì mảng bắt đầu đếm từ 0 chứ không phải 1), chúng ta ở cuối và chúng ta chỉ cần trả về phần tử đó tại chỉ mục đó.

Bước 4: Bước đệ quy

Bước đệ quy
Bước đệ quy

Khi chúng ta đã có trường hợp cơ sở của mình, bước tiếp theo là bước đệ quy của chúng ta. Đây là nơi điều kỳ diệu xảy ra. Chúng tôi đã xử lý trường hợp khi chỉ mục của chúng tôi bằng phần tử cuối cùng trong mảng của chúng tôi. Điều gì sẽ xảy ra nếu chúng ta không ở phần tử cuối cùng trong mảng của mình? Điều gì sẽ xảy ra nếu chúng ta chỉ cần yêu cầu nó thêm phần tử hiện tại của chúng tôi cộng với phần tiếp theo? Cuối cùng, chúng ta sẽ kết thúc mảng của mình và trường hợp cơ sở của chúng ta sẽ ảnh hưởng.

Để thực hiện điều này, chúng tôi chỉ cần trả về chỉ mục hiện tại của mình và "thêm phần còn lại" của mảng.

Bước 5: Rút ngắn vấn đề

Rút ngắn vấn đề
Rút ngắn vấn đề

Làm thế nào để chúng ta chỉ cần "thêm phần còn lại"? Chúng tôi đã có một phương thức sẽ thêm một phần tử nhất định; phương thức recursiveSum () của chúng ta! Chúng ta có thể gọi nó lại nhưng hãy thay đổi chỉ số nào mà chúng ta đang tính tổng.

Chúng tôi chuyển vào cùng một mảng mà chúng tôi đang xử lý, nhưng chúng tôi chuyển vào chỉ mục tiếp theo từ chỉ mục hiện tại của chúng tôi. Chúng tôi thực hiện điều này bằng cách chỉ cần thêm một vào chỉ mục hiện tại của chúng tôi như được hiển thị.

Bước 6: Tạo mảng số nguyên

Tạo mảng số nguyên
Tạo mảng số nguyên

Bây giờ phương pháp tính tổng đệ quy của chúng ta đã hoàn tất, chúng ta có thể tạo mảng của chúng ta mà chúng ta sẽ xử lý. Mảng này sẽ nằm trong khối phương thức chính của chúng ta.

Bạn có thể tạo kích thước của mảng bao lâu tùy thích. Tôi đã tạo một vài mảng khác nhau với các kích thước và giá trị khác nhau để cho thấy nó hoạt động không chỉ trên một kích thước duy nhất.

Bước 7: Gọi phương thức với mảng của bạn

Gọi phương thức bằng mảng của bạn
Gọi phương thức bằng mảng của bạn

Bây giờ bạn có thể gọi phương thức đệ quy của mình và chuyển các mảng này cho nó. Bây giờ bạn có thể chạy chương trình của mình.

Bước 8: In kết quả

In kết quả
In kết quả
In kết quả
In kết quả

Không có chuyện gì xảy ra. Tại sao? Tổng đệ quy trả về một số nguyên nhưng chúng ta chưa làm gì với số nguyên này. Nó đã làm công việc của nó nhưng chúng tôi không thể nhìn thấy kết quả. Để xem kết quả, chúng ta chỉ cần in nó ra như vậy. Sau khi chạy, bạn sẽ thấy kết quả cho từng mảng của mình.

Bước 9: Xin chúc mừng

Bạn đã hoàn thành một hàm đệ quy. Hãy thay đổi kích thước mảng của bạn. Nếu bạn kiểm tra nó, bạn sẽ nhận thấy nó bị treo khi bạn có một mảng trống. Chúng tôi chưa tính đến nó nhưng đó là một cách tuyệt vời để cải thiện phương pháp đệ quy của bạn.

Đề xuất: