感觉二分查找和搜索二叉树好像基本没区别呀,谁能解释一下这两种查找区别,还有什么情况下哪种更好么?
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。二叉查找树,它或者是一棵空树,或者若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
1,二分就是对半分的意思,二叉是左右节点的意思,二叉不一定要对半分
2,二分一般是针对有序链表查找,而二叉是树形结构的查找
3,一个是有序链表,一个二叉树,当然实在对应的存储结构使用好了。
突然发现链表二分查找不懂,能解释下链表怎么二分查找么?
@lthb: 因为是有序的,所以每次去一半,然后判断查找的内容在那一半,以此类推
@茂茂: 链表想去掉一半,难道不要一直找到一半的位置么?
@茂茂: 但是他想去掉一半,不就得走一半么?也就是说,他的时间复杂度是o(n)呀。