Mengapa Kod Carian Perduaan Rekursif Saya Tiada Kembali Sebaliknya Benar?

Linda Hamilton
Lepaskan: 2024-10-26 03:18:27
asal
515 orang telah melayarinya

Why Does My Recursive Binary Search Code Return None Instead of True?

Kod Rekursif Gagal Mengembalikan Nilai Sebenar

Kod yang diberikan bertujuan untuk menentukan sama ada aksara wujud dalam rentetan menggunakan pendekatan carian binari. Walau bagaimanapun, ia gagal mengembalikan nilai True yang dijangkakan dan terus mengembalikan Tiada.

Analisis:

Kod ini menggunakan fungsi rekursif isIn yang mengambil aksara dan rentetan sebagai input. Ia melakukan carian binari dengan membahagikan rentetan kepada dua bahagian pada titik tengah. Jika aksara itu sepadan dengan titik tengah, ia mencetak mesej yang menunjukkan kehadiran watak itu dan mengembalikan Benar.

Jika aksara itu lebih besar daripada aksara titik tengah dan titik tengah bukan aksara terakhir dalam rentetan (iaitu, terdapat aksara pegun untuk dicari), fungsi mengemas kini rentetan dengan mengalih keluar separuh pertama. Jika aksara kurang daripada aksara titik tengah dan titik tengah bukan aksara pertama dalam rentetan (iaitu, masih terdapat aksara untuk dicari), fungsi mengemas kini rentetan dengan mengalih keluar separuh kedua.

Walau bagaimanapun, kod itu tidak mempunyai penyataan pulangan pada baris terakhir dalam blok lain. Tanpa penyataan pulangan ini, fungsi hanya ditamatkan tanpa mengembalikan nilai secara eksplisit. Ini mengakibatkan Python secara tersirat mengembalikan Tiada, itulah sebabnya fungsi itu terus mengembalikan Tiada.

Penyelesaian:

Untuk membetulkan isu, anda perlu menambah pernyataan pulangan pada baris terakhir dalam blok else:

<code class="python">return isIn(char, aStr)</code>
Salin selepas log masuk

Dengan pengubahsuaian ini, fungsi akan mengembalikan hasil panggilan rekursif, yang akhirnya akan mengembalikan True jika aksara ditemui dalam rentetan.

Atas ialah kandungan terperinci Mengapa Kod Carian Perduaan Rekursif Saya Tiada Kembali Sebaliknya Benar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!