PTA数据结构期末复习

本文介绍了时间复杂度的概念,详细讨论了线性表、栈、队列的基础操作,重点讲解了查找算法中的折半查找和线性探测,涉及排序方法如插入排序、快速排序、堆排序、冒泡排序和选择排序,以及它们的时间复杂度分析。
摘要由CSDN通过智能技术生成

绪论

时间复杂度

在这里插入图片描述
笔记:
在这里插入图片描述

在这里插入图片描述

线性表

在这里插入图片描述

栈和队列

在这里插入图片描述
在这里插入图片描述
对于队列再说一点,rear指针可以指向最后一个元素的下一个位置也可以指向最后一个元素,这要根据初始化和入队出队的操作顺序确定。栈也同理

在这里插入图片描述

在这里插入图片描述

查找

在这里插入图片描述
在这里插入图片描述
折半查找的判定树,是一颗平衡二叉树
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
查找不成功,如果是线性探测,我们要一直往后比较,比较到空,或者是其余的所有元素,才能算查找失败,对于这题来说4个相同的,那么这四个位置的对应的查找长度是5+4+3+2,其余的都是1
那么平均查找长度就是(5+4+3+2+7)/11 = 21/11

排序

在这里插入图片描述
在这里插入图片描述
插入排序直到最后一次循环结束,才可以确定元素的位置,如果最后一个元素要放在第一个位置,那么所有的元素都不在自己的最终位置上
在这里插入图片描述
就算原本的数据有序,那么比较的次数仍然是n趟*n个元素,而交换不用交换了,时间复杂度仍然是O(n^2)
在这里插入图片描述
快速排序在普通数据中有最好的数据复杂度,但是排序好的数据中,最差有O(n^2)
在这里插入图片描述
规模较小,直接选择快
在这里插入图片描述
堆排序没有新开空间,空间复杂度是O(1),快速排序要递归的执行,函数栈的空间复杂度是O
(logn),
快速排序首先进行一次划分,划分后再对左右子表哦进行划分,最终排序完成
归并要新开一个等长的数组O(n)
在这里插入图片描述
四个不稳定,希尔,堆排序,快速排序,选择

直接插入排序

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

希尔排序

在这里插入图片描述
保证新增量的子序列有序

桶排序,基数排序

在这里插入图片描述

堆排序

这里是O(1)
在这里插入图片描述
在这里插入图片描述
小根堆:根上的元素比左右孩子都小
大根堆:根上的元素比左右孩子都大

冒泡排序

在这里插入图片描述
对于没有优化的冒泡排序来说,每一次这个元素都要和其他所有元素比一遍,因为一次只能确定一个位置的正确,其他的都不一定正确,那么每个元素都有可能是放在首位上的,所有这题就是1…+6。 特别的,可以记录某次循环,如果没有发生交换,可以直接判定冒泡排序完成,这种排序算法,在有序的序列中时间复杂度为O(n)

快速排序

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

选择排序

在这里插入图片描述
每个都要交换,最多交换n-1次

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值