Rumah > pembangunan bahagian belakang > Tutorial Python > Program Python untuk mencari elemen secara linear secara rekursif dalam tatasusunan

Program Python untuk mencari elemen secara linear secara rekursif dalam tatasusunan

WBOY
Lepaskan: 2023-08-20 23:22:30
ke hadapan
1085 orang telah melayarinya

Program Python untuk mencari elemen secara linear secara rekursif dalam tatasusunan

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
Salin selepas log masuk

Carian linear untuk elemen secara rekursif

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.

Contoh

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))
Salin selepas log masuk

Output

2 was found at index 4.
Salin selepas log masuk

Contoh

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))
Salin selepas log masuk

Output

6 was found at index 2.
Salin selepas log masuk

Contoh

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))
Salin selepas log masuk

Output

100 was not found.
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan