우리는 트리 높이가 logn이기 때문에 항상 (이진 검색) 트리에서 연산이 O (logn) 최악의 경우 실행 시간이 있음을 확인합니다. 알고리즘에 logn의 함수로 실행 시간이 있다고 들었는지, 예를 들어 m + nlogn과 같이 (증가 된) 트리를 포함해야한다고 결론을 내릴 수 있습니까?O (logn)은 항상 트리입니까?
편집 : 의견을 보내 주시면 divide-conquer와 binary tree가 시각적/개념적으로 매우 유사하다는 것을 알게되었습니다. 나는 둘 사이를 연결 한 적이 없었다. 그러나 O (logn)가 BST/AVL/적 검은 색 나무의 특성이없는 나무를 포함하는 분할 정복 알고리즘이 아닌 경우를 생각합니다.
N은 요소 수, M은 찾기 연산 수와 함께 실행 시간이 O (N + MlogN) 인 찾기/결합 연산이있는 분리 된 데이터 구조입니다.
내가 sth가 없으면 알려주세요.하지만 어떻게 분할 정복이 여기에 나타나는지 알 수 없습니다. 이 BST 속성이없는 트리가 있고 실행 시간이 logN의 함수 인 트리가 있음을 볼 수 있습니다. 그래서 제 질문은 왜/왜 제가이 사건에서 일반화 할 수 있는지에 관한 것입니다.
균형 잡힌 나무 만 높이 lgn입니다. lgn 대신 N에 접근하는 높이를 초래하는 나무에 대한 작업을 완벽하게 수행 할 수 있습니다. (예 : 정렬되지 않은 배열을 정렬되지 않은 트리에 삽입).) – KitsuneYMG
수학에 조심하십시오. 'm + nlogn'은'O (log n)'이 아니며'O (n log n)'입니다. – Potatoswatter
동의합니다. 내가 AVL/red-black tree와 disjoint set forests에 대해 생각해 보았습니다. – Martin08