🚀Write In Front🚀
📝个人主页:令夏二十三
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
📣系列专栏:【数据结构】
💬总结:希望看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
文章目录
声明
记录序列以顺序表存储:
#define MAXSIZE 20
typedef int KeyType;//设关键字为整型量
typedef struct{//定义每个记录的结构
KeyType key;//关键字
InfoType otherinfo;//其他数据项
}RedType;
typedef struct{//定义顺序表的结构
RedType r[MAXSIZE+1];//存储顺序表的数组,r[0]一般作哨兵或缓冲区
int length;//顺序表的长度
}SqList;
排序算法效率的评价指标有两个:执行时间和辅助空间。
一、排序概述
什么是排序?
排序:将一组杂乱无章的数据按一定规律顺次排列起来。
即将无序序列排成一个有序序列的过程。
如果参加排序的数据结点包含多个数据域,那么排序往往只针对其中某个域而言。
排序的应用十分广泛:软件中直接应用,程序中间接应用(二分法查找、最短路径、最小生成树)
排序方法稳不稳定不决定其好坏。
内部排序的过程是一个逐步扩大记录的有序序列长度的过程。
使有序区中记录的数目增加一个或几个的操作成为一趟排序。
一、 插入排序
1. 直接插入排序算法
对序列从左到右逐步扩充有序区,每次将一个记录向左移动插入到有序区中。
O(n2)
顺序和链式都可以
2. 快速排序算法
递归完成
O(nlog2n)
适用于顺序结构
3. 堆排序算法
时间复杂度和快排一样
堆是完全二叉树,化成序列就是按照二叉树的从上到下、从左到右的顺序来的。
但是不一定是左边比右边大,而是在树里看,如果是大根堆的话,就是双亲结点比孩子结点大;如果是小根堆就相反。
本文介绍了排序的基本概念,包括排序的定义、目的和应用。文章讨论了排序算法的效率评价标准,如执行时间和辅助空间,并概述了几种常见的排序算法,如直接插入排序、快速排序和堆排序,以及它们的时间复杂度和适用场景。
35万+

被折叠的 条评论
为什么被折叠?



