知识大全 排序 - 分配排序 - 箱排序 (一)
Posted 时间
篇首语:学向勤中得,萤窗万卷书。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 排序 - 分配排序 - 箱排序 (一)相关的知识,希望对你有一定的参考价值。
按平均时间将排序分为四类
( )平方阶(O(n ))排序
一般称为简单排序 例如直接插入 直接选择和冒泡排序;
( )线性对数阶(O(nlgn))排序
如快速 堆和归并排序;
( )O(n +£ )阶排序
£是介于 和 之间的常数 即 <£< 如希尔排序;
( )线性阶(O(n))排序
如桶 箱和基数排序
各种排序方法比较
简单排序中直接插入最好 快速排序最快 当文件为正序时 直接插入和冒泡均最佳
影响排序效果的因素
因为不同的排序方法适应不同的应用环境和要求 所以选择合适的排序方法应综合考虑下列因素
①待排序的记录数目n;
②记录的大小(规模);
③关键字的结构及其初始状态;
④对稳定性的要求;
⑤语言工具的条件;
⑥存储结构;
⑦时间和辅助空间复杂度等
不同条件下 排序方法的选择
( )若n较小(如n≤ ) 可采用直接插入或直接选择排序
当记录规模较小时 直接插入排序较好;否则因为直接选择移动的记录数少于直接插人 应选直接选择排序为宜
( )若文件初始状态基本有序(指正序) 则应选用直接插人 冒泡或随机的快速排序为宜;
( )若n较大 则应采用时间复杂度为O(nlgn)的排序方法 快速排序 堆排序或归并排序
快速排序是目前基于比较的内部排序中被认为是最好的方法 当待排序的关键字是随机分布时 快速排序的平均时间最短;
堆排序所需的辅助空间少于快速排序 并且不会出现快速排序可能出现的最坏情况 这两种排序都是不稳定的
若要求排序稳定 则可选用归并排序 但本章介绍的从单个记录起进行两两归并的 排序算法并不值得提倡 通常可以将它和直接
插入排序结合在一起使用 先利用直接插入排序求得较长的有序子文件 然后再两两归并之 因为直接插入排序是稳定的 所以改进
cha138/Article/program/sjjg/201311/23769相关参考
)在基于比较的排序方法中每次比较两个关键字的大小之后仅仅出现两种可能的转移因此可以用一棵二叉树来描述比较判定过 程 当文件的n个关键字随机分布时任何借助于比较的排序算法至少需要O(nlgn)的
基数排序 基数排序(RadixSort)是对箱排序的改进和推广 单关键字和多关键字 文件中任一记录R[i]的关键字均由d个分量 >构成 若这d个分量中每个分量都是一个独立的关键字则文件是
排序是组织数据最基本的运算排序的方法也很多本章给出了几种典型的排序方法见下表 排序类别插入排序交换排序选择排序归并排序分配排序 排序方法直接插入冒泡法直接选择*归并排序箱排序 希尔排序*快速
归并排序 ·先两个一组排序形成(n+)/组再将两组并一组直到剩下一组为止 ·归并排序是非就地稳定排序时间复杂度是O(nlogn) 分配排序 箱排序 ·按关键字的取值范围确定箱子数按关键字
基数排序 基数排序(RadixSort)根据组成关键字的每个位的有效值用分配和收集的方法进行排序 基数排序算法cha138/Article/program/sjjg/201311
.归并排序辅助存储为O()( )【青岛大学四(分)】 .在分配排序时最高位优先分配法比最低位优先分配法简单( )【上海交通大学一】 .冒泡排序和快速
(七)基数排序 思想从低位到高位依次对Kj(j=dd…)进行箱排序箱排序也称桶排序(BucketSort)其基本思想是设置若干个箱子依次扫描待排序的记录R[]
交换排序的基本思想是两两比较待排序记录的关键字发现两个记录的次序相反时即进行交换直到没有反序的记录为止 应用交换排序基本思想的主要排序方法有冒泡排序和快速排序 冒泡排序 排序方法 将被排序
快速排序(QuickSort) 算法思想 快速排序是CRAHoare于年提出的一种划分交换排序它采用了一种分治的策略通常称其为分治法(Divideand ConquerMethod) ()
插入排序(InsertionSort)的基本思想是每次将一个待排序的记录按其关键字大小插入到前面已经排好序的子文件中的适当 位置直到全部记录插入完成为止 本节介绍两种插入排序方法直接插入排序和