python树形_Python处理树形数组
用
Python
構建樹形數組,并且寫出
GetSum,?update,?FindMax
三個函數,分別對應的是:查
找從
1
到
n
的
sum
,
對于某一個元素增加
num
,需要對數組進行維護更新(
update
)
,
并
且構建一個
maxArray
數組供查詢任意一段區間的
max
#?Author
:
Z
#?Date:?2016-01-08
import?random
a?=?[0?for?i?in?xrange(30)]
b?=?[random.randint(0,100)?for?i?in?xrange(30)]
maxb?=?[0?for?i?in?xrange(30)]
minb?=?[0?for?i?in?xrange(30)]
def?lowbit(x):?#?lowbit?function
return?x&(-x)
def?build_tree_array():?#?Build?tree-array?a?by?inital-array?b
for?i?in?xrange(1,len(b)):
num1?=?i?-?lowbit(i)?+?1
num2?=?i?+?1
for?j?in?xrange(num1,num2):
a[i]?+=?b[j]
def?GetSum(x):?#?Get?sum(b)?[1,...x]
s?=?0
while?x?>?0:
s?+=?a[x]
x?-=?lowbit(x)
return?s
def?update(idex,num):
#?for?b:?b[idex]+=num?so?for?a?is:
while?idex?<=?(len(a)-1):
a[idex]?+=?num
idex?+=?lowbit(idex)
def?initmax():
for?i?in?xrange(1,30):
maxb[i]?=?b[i]
j?=?1
end?=?lowbit(i)
while?j
總結
以上是生活随笔為你收集整理的python树形_Python处理树形数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: a5松下驱动器参数设置表_松下伺服几个参
- 下一篇: websocket python爬虫_p