N 항목을 빈 바이너리 검색 트리에 삽입하십시오
-
21-08-2019 - |
문제
빈 바이너리 검색 트리에 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)입니다.
제휴하지 않습니다 StackOverflow