Carian linear ialah cara paling mudah untuk mencari elemen dalam tatasusunan. Ia adalah algoritma carian berurutan yang bermula dari satu hujung dan menyemak setiap elemen tatasusunan sehingga elemen yang diperlukan ditemui.
Rekursi ialah apabila fungsi memanggil dirinya sendiri, apabila menggunakan fungsi rekursif kita perlu menggunakan sebarang gelung untuk menjana lelaran. Sintaks di bawah menunjukkan cara fungsi rekursif mudah berfungsi.
def rerecursiveFun(): Statements ... rerecursiveFun() ... rerecursiveFun
Carian linear untuk elemen secara rekursif daripada tatasusunan hanya boleh dicapai dengan menggunakan fungsi. Dalam Python, untuk menentukan fungsi, kita perlu menggunakan kata kunci def.
Dalam artikel ini, kita akan belajar cara mencari elemen secara linear dalam tatasusunan secara rekursif dalam Python. Di sini, kami akan menggunakan senarai Python dan bukannya tatasusunan kerana Python tidak mempunyai jenis data khusus untuk mewakili tatasusunan.
Kami akan memanggil fungsi recLinearSearch() secara rekursif dengan mengurangkan saiz tatasusunan. Jika saiz tatasusunan menjadi negatif, bermakna elemen itu tiada dalam tatasusunan, kami kembalikan -1. Jika padanan ditemui, kedudukan indeks di mana elemen terletak dikembalikan.
# Recursively Linearly Search an Element in an Array def recLinearSearch( arr, l, r, x): if r < l: return -1 if arr[l] == x: return l if arr[r] == x: return r return recLinearSearch(arr, l+1, r-1, x) lst = [1, 6, 4, 9, 2, 8] element = 2 res = recLinearSearch(lst, 0, len(lst)-1, element) if res != -1: print('{} was found at index {}.'.format(element, res)) else: print('{} was not found.'.format(element))
2 was found at index 4.
Mari kita lihat satu lagi contoh mencari elemen dalam tatasusunan.
# Recursively Linearly Search an Element in an Array def recLinearSearch(arr, curr_index, key): if curr_index == -1: return -1 if arr[curr_index] == key: return curr_index return recLinearSearch(arr, curr_index-1, key) arr = [1, 3, 6, 9, 12, 15] element = 6 res = recLinearSearch(arr, len(arr)-1, element) if res != -1: print('{} was found at index {}.'.format(element, res)) else: print('{} was not found.'.format(element))
6 was found at index 2.
Ambil carian untuk elemen 100 dalam tatasusunan sebagai contoh lain.
# Recursively Linearly Search an Element in an Array def recLinearSearch(arr, curr_index, key): if curr_index == -1: return -1 if arr[curr_index] == key: return curr_index return recLinearSearch(arr, curr_index-1, key) arr = [1, 3, 6, 9, 12, 15] element = 100 res = recLinearSearch(arr, len(arr)-1, element) if res != -1: print('{} was found at index {}.'.format(element, res)) else: print('{} was not found.'.format(element))
100 was not found.
Dalam contoh di atas, elemen 100 tidak ditemui dalam tatasusunan yang diberikan.
Ini adalah contoh pencarian linear rekursif untuk elemen dalam tatasusunan menggunakan pengaturcaraan Python.
Atas ialah kandungan terperinci Program Python untuk mencari elemen secara linear secara rekursif dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!