色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python的算法例子

夏志豪1年前6瀏覽0評論

Python語言由于其簡潔明了和強大的庫支持,如今已經成為了當下最流行的編程語言之一。本文將介紹Python中的一些典型算法例子,以便讀者更好地理解Python的算法應用。

# 1. 二分查找算法
def binary_search(arr, l, r, x):
if r >= l:
mid = l + (r - l) // 2
if arr[mid] == x:
return mid
elif arr[mid] >x:
return binary_search(arr, l, mid-1, x)
else:
return binary_search(arr, mid + 1, r, x)
else:
return -1
# 測試數據
arr = [ 2, 3, 4, 10, 40 ]
x = 10
result = binary_search(arr, 0, len(arr)-1, x)
if result != -1:
print ("元素在數組中的索引為 % d" % result)
else:
print ("元素不在數組中")

以上代碼為二分查找算法的Python實現,通過遞歸方式將數組一分為二,然后在對比中位數和目標值,從而不斷縮小查找范圍。這種算法的時間復雜度是log(N)。

# 2. 快速排序算法
def quick_sort(arr):
if len(arr)<= 1:
return arr
else:
pivot = arr[0]
less = [i for i in arr[1:] if i<= pivot]
greater = [i for i in arr[1:] if i >pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
# 測試數據
arr = [10, 2, 9, 4, 3, 6]
print("原始數據:", arr)
result = quick_sort(arr)
print("排序結果:", result)

利用遞歸思想,快速排序借助一個基準值將數組分成兩部分,分別對兩個部分進行遞歸排序,再合并即可得到有序數組。由于快速排序是不穩定的排序算法,其時間復雜度為O(NlogN)。

# 3. 動態規劃算法
def dynamic_programming(target, nums):
dp = [0] * (target + 1)
dp[0] = 1
for num in nums:
for i in range(num, target + 1):
dp[i] += dp[i - num]
return dp[target]
# 測試數據
target = 5
nums = [1,2,5]
result = dynamic_programming(target, nums)
print("結果:", result)

動態規劃算法是一種優化遞歸算法的思想,通過表格記錄以往計算結果,將遞歸轉化為迭代,從而大大提高了算法的效率。以上為動態規劃算法的一個例子,在背包問題中,動態規劃算法用于求出能夠湊出目標數的方案數,其時間復雜度為O(N * target)。