Hướng dẫn python terminate recursion - python chấm dứt đệ quy

Tôi đang cố gắng viết một thuật toán tìm kiếm nhị phân bằng cách sử dụng lập trình đệ quy trong Python. Mảng thử nghiệm của tôi là [1, 5, 8, 10, 14, 20]. Nếu một số nằm trong mảng, chương trình được cho là sẽ trả về 1, nếu không, nó sẽ trả về 0. Nếu số để kiểm tra là 1, trước tiên nó sẽ lấy phần tử giữa với chỉ mục floor[len[array]/2], là 10 trong trường hợp thử nghiệm này và và so sánh nó với 1. Nó sẽ đệ quy thực hiện cùng một procdure cho Subarray [1, 5, 8, 10] cho đến khi chỉ có hai yếu tố trong Subarray, đó là [1, 5]. Sau đó, nó so sánh số thử nghiệm số 1 với mỗi người trong số họ. Chương trình được cho là sẽ trả về 1 nếu số thử nghiệm được chứa trong SubArray cuối cùng của hai yếu tố và 0 nếu không. Tuy nhiên, đáng ngạc nhiên, kết quả cuối cùng là None.

Tôi đoán rằng lý do cho điều này có thể là đệ quy không bị chấm dứt. Làm thế nào tôi có thể khắc phục sự cố này?

import numpy as np
import math

def myBinarySearch[array, x]:  # array is sorted
    print["length of array: " + str[len[array]]]
    if [len[array]==2]:
        # print["length of array: " + str[len[array]]]
        # print["OK"]
        print["array" + str[array] + "\t" + str[array[0]] + " " + str[array[1]] + "\telement: " + str[x]]
        if [x==array[0]]:  # element is found
            print["find: 0"]
            return 1
        elif [x==array[1]]:
            print["find: 1"]
            return 1
        else:
            print["not find"]
            return 0
    midIdx = math.floor[len[array]/2]
    print["mid element: " + str[array[midIdx]]]
    if [x==array[midIdx]]:  # element is found
        return 1  
    if [xarray[midIdx]]:
        myBinarySearch[array[midIdx, len[array]], x]
        
    
A = np.array[[1, 5, 8, 10, 14, 20]]
# B = np.array[[1, 3, 5, 7, 9, 11, 20, 14, 16]]
# B = np.array[[1, 21, 20, 14]]
B = np.array[[1]]
C = np.zeros[shape=[1,len[B]]]
for i in range[len[B]]:
    #print["B[i]: " + str[B[i]]]
    inArray = myBinarySearch[A, B[i]]
    print[inArray, end=""]
    C[0][i] = inArray
# print["\n" + str[A]]    

Hướng dẫn vòng lặp trong python

NHÓM Phát Triển Của Chún tôma vừa ra mắt Trang web Langlearning.net Học tiếng ah Là ...

Hướng d

Lời nói Đầu.xin chìo mọi người Đ Quay trở lại seria bài viết về python của mình. Ai Cần ĐọC Về BÀi VIết Về Python Phần 1, 2 VÀ 3 CủA Mình Thì Nhấp ...

Hướng dẫn dùng python erros python

NHÓM Phát Triển Của Chún tôma vừa ra mắt Trang web Langlearning.net Học tiếng ah Là ...

Hướng d

Lời nói Đầu.xin chìo mọi người Đ Quay trở lại seria bài viết về python của mình. Ai Cần ĐọC Về BÀi VIết Về Python Phần 1, 2 VÀ 3 CủA Mình Thì Nhấp ...

Bài Viết Liên Quan

Chủ Đề