5月末学习记录3

本文介绍了二叉排序树的概念及其性质,包括如何保证其左子树所有节点值小于根节点,右子树反之。同时讨论了平衡二叉排序树的平衡条件以及调整策略。此外,还探讨了哈希表查找法,强调了减少冲突的重要性。最后,概述了多种排序算法,如冒泡排序、选择排序、插入排序、堆排序以及归并排序和快速排序,它们的时间复杂度和应用场景。
摘要由CSDN通过智能技术生成

数据结构完结咯


♥☺十五、第十五节 二叉排序树

  1. 对无序的顺序存储结构进行查找,例子

  1. 二叉排序树:又称二叉查找树,它或者是一棵空树,或者是具有下列性质的二叉树:
    1. 若他的左子树不为空,则左子树上所有结点的值均小于它的根结构的值;
    2. 若它的右子树不为空,则右子树上所有结点的值均大于它的根结构的值;
    3. 它的左右子树也分别为二叉排序树(递归)
  2. 平衡二叉排序树:前提是二叉排序树,且左子树右子树深度之差的绝对值不超过1。

哪个结点不合理(不满足相减小于1),就对该节点所在子树进行旋转,对树进行+1右旋转 -1左旋转

 

♥☺十六、第十六节 查找

  1. 散列表(哈希表)查找:散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key).

这里,把这种对应关系f称为散列函数,又称为哈希函数(hash)。采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间成为散列表或者哈希表(hash table)

 

尽量不要有冲突,即key1!=key2,f(key1)=f(key2),是不可以的。

  1. 排序算法
    1. 冒泡排序:基本思想:两两相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。时间复杂度O(n^2)

  1. 选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换。时间复杂度O(n^2)
  2. 直接插入排序:将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。
  3. 堆排序(选择排序的改进):与完全二叉树相关,大顶堆,小顶堆,即根结点是所有结点最大或最小者

 

  1. 归并排序:时间复杂度O(nlogn)

 

  1. 快速排序:每一趟排序指定一个基准点,小于基准点放在左边,大于基准点放在右边;时间复杂度O(nlogn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值