You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
可以看出每次向下走,都会排除了一个分支,如果一颗二叉搜索树同时也是一颗二叉平衡树的话,那么其搜索过程时间复杂度就是 $O(logN)$。实际上,**平衡二叉搜索树的查找和有序数组的二分查找本质都是一样的,只是数据的存储方式不同罢了**。那为什么有了有序数组二分,还需要二叉搜索树呢?原因在于树的结构对于动态数据比较优友好,比如数据是频繁变动的,比如经常添加和删除,那么就可以使用二叉搜索树。理论上添加和删除的时间复杂度都是 $O(h)$,其中 h 为树的高度,如果是一颗平衡二叉搜索树,那么时间复杂度就是 $O(logN)$。而数组的添加和删除的时间复杂度为 $O(N)$,其中 N 为数组长度。
760
+
可以看出每次向下走,都会排除了一个分支,如果一颗二叉搜索树同时也是一颗二叉平衡树的话,那么其搜索过程时间复杂度就是 $O(logN)$。实际上,**平衡二叉搜索树的查找和有序数组的二分查找本质都是一样的,只是数据的存储方式不同罢了**。那为什么有了有序数组二分,还需要二叉搜索树呢?原因在于树的结构对于动态数据比较友好,比如数据是频繁变动的,比如经常添加和删除,那么就可以使用二叉搜索树。理论上添加和删除的时间复杂度都是 $O(h)$,其中 h 为树的高度,如果是一颗平衡二叉搜索树,那么时间复杂度就是 $O(logN)$。而数组的添加和删除的时间复杂度为 $O(N)$,其中 N 为数组长度。
0 commit comments