演算法例子一:
給定乙個列表和乙個整數,找到兩個數的下標,使得這兩個數的各為給定的整數,保證肯定僅有乙個結果
窮舉法:
def
brute_force
(li,target)
: n=
len(li)
for i in
range(0
,n):
for j in
range
(i+1
,n):
if li[i]
+li[j]
==target:
return i,j
二分查詢法:
'''
'''def
bin_search
(li, val)
: low =
0 high =
len(li)-1
while low <= high:
mid =
(low + high)//2
if li[mid]
== val:
return mid
elif li[mid]
> val:
high = mid -
1else
: low = mid +
1return
none
defsearch_index
(li, target)
: li.sort(
)for i in
range(0
,len
(i))
: j=bin_search(li[i +1:
], target - li[i]
)if j:
return i,j
方法三
先給列表排序,然後迴圈遍歷列表,如果列表第乙個數與列表最後乙個數相加的和大於target,把被加數向左偏移一位,
如果列表第乙個數與列表最後乙個數相加的和小於target,把加數向右偏移一位
如果列表中兩個數相加等於target,則返回列表中的兩個數的下標
def
search_index
(li,target)
: li.sort(
) j=
len(li)-1
for i in
range
(j):
if li[i]
+ li[j]
< target:
i +=
1elif li[i]
+ li[j]
> target:
j -=
1else
:return i,j
演算法例子二:
給定乙個公升序列表和乙個整數,返回該整數在列表中的下標範圍
思路:
先使用二分法找到val在列表中的下標,然後把下標分別向左和向中移動,直到下標的值不等於目標整數時返回下標的元組
'''
'''def
bin_search
(li,val)
: low=
0 high=
len(li)-1
while low <= high:
mid=
(low + high)//2
if li[mid]
== val:
return mid
elif li[mid]
> val:
high = mid -
1else
: low=mid +
1return
none
defsearch_index
(li,val)
: i=
0 j=
0 mid=bin_search(li,val)
i=mid-
1 j=mid +
1while li[i]
==val:
i -=
1while li[j]
== val:
j +=
1return
(i+1
,j-1
)
關於演算法的兩個例子
def brute force li,target n len li for i in range 0,n for j in range i 1,n if li i li j target return i,jdef bin search li,val low 0 high len li 1 whi...
python中ADF檢驗的兩個例子
eg1 x np.arange 10 result sts.adfuller x,1 result 0.9921567416492214,0.9941824998493046,1,8,555.5406151390793 統計檢驗值 0.9921567416492214 p value 0.99418...
學習shell程式設計的兩個例子
例子一 繪製特殊圖形 如下 bin bash max no 0 echo n enter number between 5 to 9 read max no if max no ge 5 a max no le 9 then echo wtf.i ask to enter number betwee...