문제

빈 바이너리 검색 트리에 n 항목을 삽입하는 데 최악의 경우가 가장 큰 이유는 무엇입니까? 균형 점검이 없습니다.

도움이 되었습니까?

해결책

각 항목은 O (N)이고 N 항목이 있습니다. 항목 당 O (N)가 "증가 할 때 증가하는"N이지만 여전히 0 + 1 + 2 + 3 ... (N-1) 인 N (N-1)/2 = O (O) (N-1). n^2).

다시 말해, 우리가 10, 20, 30, 40을 추가한다고 가정합니다.

1 단계 : 빈 나무, 삽입 10 :

10

2 단계 : 20과 10과 비교; 더 큰 나무는 나무가됩니다.

10
  \
   20

3 단계 : 30과 10과 비교; 더 크기 때문에 20으로 노드로 이동하십시오. 30을 20과 비교하십시오. 더 큰 나무는 나무가됩니다.

10
  \
   20
     \
      30

4 단계 : 40과 10과 비교; 더 크기 때문에 20으로 노드로 내려갑니다. 40을 20과 비교하십시오. 더 크기 때문에 30으로 노드로 이동하십시오. 40을 30과 비교하십시오. 더 큰 나무는 나무가됩니다.

10
  \
   20
     \
      30
        \
         40

우리가 매번 한 번 더 비교하는 방법에 주목하십시오. 따라서 첫 번째 요소는 0 비교, 두 번째 요소는 1을 차지하고 세 번째는 2 등을 차지합니다.

물론, 이것은 정렬 순서로 삽입하는 경우에만 해당됩니다 (작거나 크거나 큰 것 또는 작은 것). 나무의 균형을 맞추기 위해 순서대로 삽입하는 것은 훨씬 저렴합니다.

다른 팁

최악의 경우, BST는 목록이며, 비어있는 끝에 N 항목을 삽입하는 것은 O (n^2)입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top