Closed fineman999 closed 1 year ago
2의 k승 >= N을 만족하는 k의 최솟값을 구한 후 (2의 k승) 2를 트리 배열의 크기로 정하면 됨 예로 N이 8이면 k는 3이 되고 배열의 크기는 (2의 3승) 2 = 16이 된다.
height = int(math.pow(2, math.ceil(math.log2(n))) * 2)
samples = [5, 8, 4, 3, 7, 2, 1, 6]
은 어디에 넣을까 처음에 구한 값 2의 k승이 start index값이다. ex 2의 3 = 8 8부터 시작
start_index = int(math.pow(2, k))
cnt = 0
while cnt < len(samples):
graph[start_index + cnt] = samples[cnt]
cnt += 1
구간 합과 데이터 업데이트를 빠르게 수행하기 위해 고안해낸 자료구조의 형태