软考 软件设计师数据结构二笔记

查找基本概念

在这里插入图片描述
在这里插入图片描述

顺序查找

在这里插入图片描述

折半查找(二分查找顺序存储 )

在这里插入图片描述

查找一个数据先给他折中,看看要查找的是不是大于中间值如果大于前面的就不用查找了
在这里插入图片描述

l和r指向对应下标
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二分查找补充

在这里插入图片描述
在这里插入图片描述
上图描述如何构造这般查找判定树,一般都是下取整
在这里插入图片描述

二分查找最多次数公式红圈里的,平均查找长度
在这里插入图片描述


在这里插入图片描述

在这里插入图片描述

哈希表定义

在这里插入图片描述

哈希函数构造与处理冲突

在这里插入图片描述

质数只能被1和它本身整除

在这里插入图片描述
以上情况冲突了
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

处理冲突拓展和装填因子

在这里插入图片描述
在这里插入图片描述
有相同的直接这样链起来
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

因为是模13所以结果只能是0到12

小顶堆大顶堆

在这里插入图片描述
在这里插入图片描述

建立大顶堆和小顶堆

在这里插入图片描述

**最后的节点不用管从最下开始 **
在这里插入图片描述
在这里插入图片描述

排序基本概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图片里有错误 快速排序平均时间复杂度位o(log2n),空间复杂度位o(n)

直接插入排序

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
**归为就是每进行一次排序能不能确定他的最终位置 **
在这里插入图片描述

基本有序完全有序就是直接插入排序时间复杂度最好

希尔排序

在这里插入图片描述

直接插入,希尔,计数排序动画演示

序列中只有1到9适合计数排序

https://www.bilibili.com/video/BV1UP4y1A79a/?p=36&spm_id_from=pageDriver&vd_source=6092f2dd634d869c97e5d08dde6f3844

在这里插入图片描述
第一个是有序序列跟第一个比

基本有序序列用直接插入排序
在这里插入图片描述

简单选择排序(不稳定可归为)

在这里插入图片描述

假设第一个为最小的,从当前位置下一个位置找有没有比最小的还要小,找到1再看看有没有其他的比1小如果没有直接交换位置

堆排序(可归位)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

冒泡排序

在这里插入图片描述

从第一个元素开始每次比较第一个和第二个元素如果1大于2就交换
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
**稳定可归位 **

在这里插入图片描述
前面几个排序记相应概念即可

快速排序(重点)(可归位不稳定基于分治)

在这里插入图片描述
在这里插入图片描述
把4的值给第一个
在这里插入图片描述
找到大于p的值让a【j】=a【i】下图
**
在这里插入图片描述
然后划分左右区间
在这里插入图片描述
p是保存首元素的值

在这里插入图片描述

从后往前找小于p的(j找),ai=aj,然后从前往后找大于p的,找到了让aj=ai。。。。接下来重复第一步。直到i=j 最后变成如上图 分成两个
在这里插入图片描述
在这里插入图片描述
基本有序对直接插入排序是最好情况,对快速排序是最坏

在这里插入图片描述

排除c是因为c是基本有序的b也是只不过是逆序

在这里插入图片描述
在这里插入图片描述
从后往前找小于从前往后找大于

在这里插入图片描述

哪个更乱哪个效率高,D的右半部分是有序的,所以排除D

归并排序

在这里插入图片描述
在这里插入图片描述

划分至生一个元素一组
稳定但不能归位
在这里插入图片描述

在这里插入图片描述
分治法的意思是把大问题划分为小问题分而治之
在这里插入图片描述

在这里插入图片描述

插入排序就是跟第一个排序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面4个比较6次因为只要有一个小于等于后一个这个就可跳过比较下一个
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值