数据结构 7.1-7.3知识点----排序、查找

本文介绍了各种排序算法,包括直接插入排序、希尔排序、快速排序、选择排序和基数排序的工作原理、示例和时间复杂度分析。此外,还探讨了线性表的查找方法,如顺序查找、二分查找和分块查找,以及二叉排序树在动态查找表中的应用。
摘要由CSDN通过智能技术生成

排序
一种重要操作,将数据元素(记录)的任意序列,排列成按关键字有序的序列。
待排序记录数量不同,将排序方法分为内部排序、外部排序
内部排序分类:插入排序、交换排序、选择排序、归并排序、计数排序

插入排序
直接插入排序
算法思想:
将待排序的记录Ri,插入到已排好序的记录表R1, R2 ,…., Ri-1中,得到一个新的、记录数增加1的有序表。 直到所有的记录都插入完为止。
排序过程演示

在这里插入图片描述
算法实现

在这里插入图片描述
算法分析
空间复杂度:O(1)
时间复杂度:
在最好的情况下(待排序记录已经有序,即正序),此时每次循环中只需要比较关键字,次数为n-1次,而不需要移动元素
在最坏的情况下(待排序记录逆序),比较次数和移动元素的次数均达最大值,约为n*n(n-1)
插入排序的时间复杂度为O(n2)

在这里插入图片描述
希尔排序
又称“缩小增量排序”,对直接插入排序进行改进的方法
基本思想:将整个待排序列分割成若干子序列分别进行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值