Skip to content

[동시편집] Tree 방식에서 밸런싱

wi-seong-cheol edited this page Dec 12, 2023 · 1 revision

RGATreeSplit 방식은 weighted unbalanced binary tree이다.

불균형 트리이기 때문에 주기적으로 리밸런싱을 수행한다.

func balanceTree() {
  if (
    nodeNumberInTree > 3000 &&
    nbIns > Int(Double(nodeNumberInTree) / (0.14 * log(Double(nodeNumberInTree)) / log(2)))
  ) {
    nbIns = 0
    let content = createNodeList(tree: root)
    createBalancedTree(tree: RGASTree<T>(), content: content, begin: 0, length: content.count)
    addGoodSize(tree: root)
  }
}

다음과 같이 가중치를 설정하여 가중치를 넘어가게 될 경우 리밸런싱 작업을 수행한다.

오리들의 애자일한 개발 여정

📜 기획

💢 규칙

🐥 1주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 2주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 3주차 회의록, 회고

데일리 스크럼

회고

🐥 4주차 회의록, 회고

데일리 스크럼

회고

🐥 5주차 회의록, 회고

데일리 스크럼

회고

🐥 6주차 회의록, 회고

데일리 스크럼

회고

🍎 iOS

아키텍처 의사 결정 기록

Clone this wiki locally