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;
排序算法效率的评价指标有两个:执行时间和辅助空间。
一、排序概述
什么是排序?
排序:将一组杂乱无章的数据按一定规律顺次排列起来。
即将无序序列排成一个有序序列的过程。
如果参加排序的数据结点包含多个数据域,那么排序往往只针对其中某个域而言。
排序的应用十分广泛:软件中直接应用,程序中间接应用(二分法查找、最短路径、最小生成树)
排序方法稳不稳定不决定其好坏。
内部排序的过程是一个逐步扩大记录的有序序列长度的过程。
使有序区中记录的数目增加一个或几个的操作成为一趟排序。
对序列从左到右逐步扩充有序区,每次将一个记录向左移动插入到有序区中。
O(n2)
顺序和链式都可以
递归完成
O(nlog2n)
适用于顺序结构
时间复杂度和快排一样
堆是完全二叉树,化成序列就是按照二叉树的从上到下、从左到右的顺序来的。
但是不一定是左边比右边大,而是在树里看,如果是大根堆的话,就是双亲结点比孩子结点大;如果是小根堆就相反。