用遞迴方法 在列表中 使用二分查詢。找一個數字
def factorial(list1,n):
if len(list1) > 1:
num = int(len(list1) / 2)
if list1[num] == n:
print('找到數字%s了'%list1[num])
elif list1[num] < n:
print('要找的數字num%s在右邊'%list1[num])
return factorial(list1[num+1:],n)
else:
print('要找的數字num%s在左邊' % list1[num])
return factorial(list1[0:num],n)
else:
if list1[0] == n:
print('找到數字%s'%list1[0])
else:
print('當前列表沒有找到要找的數字')
相關推薦
用遞迴方法 在列表中 使用二分查詢。找一個數字
def factorial(list1,n): if len(list1) > 1: num = int(len(list1) / 2) if list1[num] == n: print('找到數字%s了'%list1[num])
用遞迴方法計算斐波那契數列
參考: https://blog.csdn.net/xuzhangze/article/details/78568702 波那契數列數列從第3項開始,每一項都等於前兩項之和。即 第n項的值為 (n-1) + (n-2) 例如:數列 1, 1, 2, 3, 5, 8, 13, 21
用遞迴方法輸出目錄下所有的檔名
# !/bin/bash function echo_name() { #shell會執行反引號中的內容(命令) for file in `ls $1` do if [ -d $1'/'$file ] then echo_name $1'/'$file else ech
用遞迴方法求n的階乘
程式碼: #include<iostream> using namespace std; int fact(int n); int main() { int n; loop: cin >> n; cout << fact(n);
用遞迴方法判斷字串是否是迴文
def isPalindrome(s): if len(s) < 2: #如果字串只有0個或1個字元,那麼該字串符合迴文的定義 return True if s[0]!=s[-1]: #如果字串不止一個字元,那麼檢查字串符的第一項和最後一項是否等同 return False retur
用遞迴方法求n階勒讓德多項式的值(C++)
#include <iostream> using namespace std; float p(float,float); int main() {float n,x;cin>>n>>x;cout<<p(n,x)<&l
java用遞迴方法求階乘
一個正整數的階乘,是所有不大於該數的正整數的積,並且0的階乘為1,n的階乘寫作n!,由1808年基斯頓·卡曼(Christian Kramp,1760~1826)引進這個表示法。 java程式碼: //用遞迴方法求階乘 public class Fact
用遞迴方法求解猴子吃桃問題
Input N Output 桃子總數 #include <STDIO.H> int fun(int n) { if(n==1) return 1; else { return 2 * ( fun(n-1)+1 ); } } int main(vo
用遞迴方法求n的階乘(C語言)
用遞迴方法求n! #include<stdio.h> int main() { int fac(int n); int n; int y; printf("
C語言用遞迴方法求解階乘
一般我們求解階乘用的時迭代的方法,即使用迴圈語句來實現功能,這次我們用的是遞迴的方法: long int Factral( long int N ){ if( N > 1 ){ retur
p219用遞迴方法求n階勒讓德多項式的值
#include<cstdio> #include<algorithm> #include<iostream> #include<cmath> #in
用遞迴方法對二叉樹進行層次遍歷
在這裡看到了這個題。層次遍歷是用佇列,一級一級地入佇列然後輸出。而用遞迴的話,我首先想到是用兩個棧來模擬佇列,在遞迴遍歷二叉樹的過程中入棧,然後最後一次性出棧。但仔細思考後發現無法做到層次遍歷。在這裡看到了正確的方法。 主要程式碼如下: 1 void PrintNodeAtLev
第四周專案5-用遞迴方法求解(1)求n的階乘
/* *copyright (t) 2004,煙臺大學計算機學院 *All rights reserved. *檔名稱:zyt.cpp *作者:張毓桐 *完成日期:2016年9月10日 *版本號:v1.0 *問題描述:輸入n,呼叫定義的遞
[C語言]用遞迴和非遞迴的方法在楊氏矩陣中查詢
從楊氏矩陣中查詢數字,以及調整奇數位於陣列的前半部分 //從楊氏矩陣中查詢數字 //1.從右上角開始找,如果要找的值大於當前值,向下找,否則,向左找,方向確定 //2.從左下角開始找,如果要找的值大於當前值,向右找,否則,向上找,方向確定 //---->最
資料結構用遞迴和非遞迴方法實現二分查詢法
二分查詢法說的通俗一點就是折半查詢,每查詢一次,所對應的元素就會減少一半,所以這種方法的優點就是比較的次數少,查詢的速度快。但其最大的缺點就是插入資料比較困難。所以在面對資料一直會發生變動的列表,就不推薦用二分查詢法了。 那麼下面就來實際介紹一下
C++資料結構4 二分查詢(遞迴方法)
二分查詢比順序查詢效率高很多 同樣的100萬個資料,順序查詢需要50萬次,而二分查詢需要20次左右既可以了。但是二分查詢需要的資料是已經排列好的,無序的資料則用不了二分查詢。 #include &l
Python函式之遞迴(用遞迴實現二分查詢)
遞迴:簡單來說就是引用(或者呼叫)自身的意思。 #階乘 def factorical(n): result=n for i in range(1,n): result *=i return result print(factorical(12)) 輸出
C++中二分查詢(遞迴,非遞迴)
二分查詢:二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。 二分查詢要求: 1.必須採用順序儲存結構 2.必須按關鍵字大小有序排列。
Java學習——方法中傳遞參數分簡單類型與復雜類型(引用類型)編程計算100+98+96+。。。+4+2+1的值,用遞歸方法實現
dig oid 傳遞 system alt style 類型 遞歸 gen package hello; public class digui { public static void main(String[] args) { /
分別用遞迴、迴圈、bisect實現二叉查詢(python實現)
1、遞迴實現二叉查詢 def binary_search_recursion(lst,target,low,high): if high < low: return None middle = (low + high)//2 if lst[middl