CYLL3.1

1.什么是树?
一种层次关系,分层次组织在管理上具有更高的效率。数据管理的基本操作之一:查找。

查找:给定某个关键词k,从集合R中找出关键字与k相同的记录。

静态查找:
方法1:顺序查找
通过for循环,这个很简单。
时间复杂度为O(n)
方法2:二分查找
查找这个数组的前提是数组内的元素必须是有序的。从中间开找,如果没找到的话,直接就可以去掉一半的元素,然后从剩下的一半开找,如此重复。
举个例子,上海到杭州一条线路坏了,中间很多根电线杆,如果从上海一根一根检查的话,工作量很大,如果从中间开始,测试这一根电线杆和上海之间是否相通,如果相通,在这一根电线杆到杭州间继续这种方法,如果没通,在着一根电线杆到上海间继续这种方法。
时间复杂度为O(logn)

例:解决问题,二分查找的应用
在这里插入图片描述

public class SJJG_3_1_BinarySearch {
    public static void main(String[] args) {
    int[] A={5,16,39,45,51,98,100,202,226,321,368,444,501};
    int n=BinarySearch(444,A);
        System.out.println(n);
    }
    public static int BinarySearch(int k,int[] A)
    {
        int left=0;
        int right=A.length-1;
        int mid;
        while(left<=right)
        {
            mid=(left+right)/2;
            if(k<A[mid])
                right=mid-1;
            else if(k>A[mid])
                left=mid+1;
            else return mid;
        }
        return -1;

    }
}

2.由二分查找引出树
在这里插入图片描述

(1).树上每个节点需要查找的次数刚好为该节点所在的层数。
(2).查找成功时查找次数不会超过判定树的深度。
(3).n个节点的判定树的深度为[log2n]+1。
ASL=(44+43+2*2+1)/11=3
每个元素的平均查找次数为3。
3.树的定义
n个结点构成的有限集合
对于一颗非空树,有以下性质
在这里插入图片描述
(1).最上方为根节点
(2).它的子集也是树,如上图bcd都是子集,也都是树
注意树的子节点只能有一个父节点,如果多余一个父节点,那么这个结构就不叫作树。
(3)子树是不相交的
(4)n个结点有n-1条边
4.树的一些基本术语
在这里插入图片描述
在这里插入图片描述
5.树的表示
在这里插入图片描述
在这里插入图片描述
我们的重点在二叉树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值