- 在内存中按关键字有序
- 判断排序是否稳定,看排序前后相同的次关键字顺序是否改变
- 按排序时内存工作量区分
简单排序( O(n2) )
高级排序( O(nlogn) )
基数排序( O(d • n) ) - 按原则分类
- 插入排序
直接插入排序(稳定,适合n较小,基本有序;顺序查找插入位置)
折半插入排序(折半查找插入位置,稳定)
2-路插入排序(循环链表,类似于左小右大)
表插入排序(不移动记录,静态链表存储,排完后得到一个有序链表,只能顺查,需要重排)
希尔排序(缩小增量排序,不稳定,先宏观后微观,dk逐渐缩小) - 交换排序
起泡排序(冒泡)(直接插入排序的有序在前,冒泡的在后,稳定)
快速排序(枢轴,不稳定,需一个栈空间来实现递归,越乱越好) - 选择排序
简单选择排序(记录移动次数少,比较次数多,不稳定)
锦标赛排序(又叫树形选择排序,利用上次排序结果)
堆排序(优于简选排和锦标赛,建堆,最后一个元素交换堆顶,最后一个非叶子结点开始筛选,反复筛选,不稳定) - 归并排序
2-路归并排序(稳定,相邻的两两归并,牺牲空间) - 计数排序
基数排序(借助多关键字,没有比较和交换,稳定)
链式基数排序(分配,收集,再分配,再收集)
- 插入排序
- 3种存储结构
数组
静态链表
地址向量
【Mark】内部排序
最新推荐文章于 2024-07-16 20:46:00 发布