排序(sorting)
排序(Sorting)
第一类:内部与外部排序
第二类:稳定与不稳定排序法
冒泡排序(Bubble sorting)
选择排序(Selection sorting)
插入排序(Insertion sorting)
快速排序(Quick sorting)
堆排序(Heap sorting)
希尔排序(Shell sorting)
归并排序(Merge sorting)
基数排序(Radix sorting)
排序(Sorting)
第一类:内部与外部排序
内部排序(Internal sort)又称「数组排序」。
【定义】排序之工作,主要在主存储器(RAM)完成。
【适用时机】数据量较少者。
外部排序(External sort)又称「归档(profile)排序」。
【定义】排序之工作,主要是在辅助内存(Disk, File)完成。
【适用时机】数据量较大者。
【例如】
排序前:3,5,19,1,3*,10
排序后:1,3,3*,5,10,19 (因为两个3, 3*的相对位置在排序前与后皆相同。)
不稳定排序法(unstable sorting),如果键值相同之数据,在排序后相对位置与排序前不相同时,称不稳定排序。
【例如】
排序前:3,5,19,1,3*,10
排序后:1,3*,3,5,10,19 (因为两个3, 3*的相对位置在排序前与后不相同。)
【定义】排序算法简单,但运行时间较长。
【平均时间复杂度】
高级排序法
【定义】排序算法复杂,运行时间较短。
【平均时间复杂度】
常见之排序算法
源地址: http://spaces.isu.edu.tw/upload/18833/3/web/sorting.htm
排序(Sorting)
第一类:内部与外部排序
第二类:稳定与不稳定排序法
第三类:简单与高等排序法
冒泡排序(Bubble sorting)
选择排序(Selection sorting)
插入排序(Insertion sorting)
快速排序(Quick sorting)
堆排序(Heap sorting)
希尔排序(Shell sorting)
归并排序(Merge sorting)
基数排序(Radix sorting)
排序(Sorting)
排序(sorting),将一组数据一用户需求,予以重新排列其顺序。一般会依数据之大小顺序排序(由大至小、或由小至大)。排序后之资料,优点为容易阅读、统计分析、与快速搜寻所要之资料。
第一类:内部与外部排序
内部排序(Internal sort)又称「数组排序」。
【定义】排序之工作,主要在主存储器(RAM)完成。
【适用时机】数据量较少者。
外部排序(External sort)又称「归档(profile)排序」。
【定义】排序之工作,主要是在辅助内存(Disk, File)完成。
【适用时机】数据量较大者。
第二类:稳定与不稳定排序法
稳定排序法(stable sorting),如果键值相同的数据,在排序后相对位置与排序前相同时,称稳定排序。【例如】
排序前:3,5,19,1,3*,10
排序后:1,3,3*,5,10,19 (因为两个3, 3*的相对位置在排序前与后皆相同。)
不稳定排序法(unstable sorting),如果键值相同之数据,在排序后相对位置与排序前不相同时,称不稳定排序。
【例如】
排序前:3,5,19,1,3*,10
排序后:1,3*,3,5,10,19 (因为两个3, 3*的相对位置在排序前与后不相同。)
第三类:简单与高级排序法
简单排序法【定义】排序算法简单,但运行时间较长。
【平均时间复杂度】
高级排序法
【定义】排序算法复杂,运行时间较短。
【平均时间复杂度】
常见之排序算法
常见之排序算法:冒泡排序、选择排序、插入排序、快速排序、堆(heap)排序、希尔(shell)排序、归并排序、基数排序
常见算法的总结:
排序方法 | 最坏时间 | 平均时间 | 稳定 | 额外空间 | 备注说明 |
气泡排序 Bubble | O(n2) | O(n2) | 稳定 | O(1) | n小比较好。 |
选择排序 Selection | O(n2) | O(n2) | 不稳定 | O(1) | n小较好,部份有序更好。 |
插入排序 Insertion | O(n2) | O(n2) | 稳定 | O(1) | 大部份有序比较好。 |
快速排序 Quick | O(n2) | O(nlog2n) | 不稳定 | O(n)~ O(log n) | 在数据已排序好时会产生最差状况。 |
堆排序 Heap | O(nlog2n) | O(nlog2n) | 不稳定 | O(1) |
|
希尔排序 shell | O(ns) 1<s<2 | O(n(log2n)2) | 不稳定 | O(1) | n小比较好。 |
合并排序 Merge | O(nlog2n) | O(nlog2n) | 稳定 | O(n) | 常用于外部排序。 |
基数排序 Radix | O(nlogbB) | O(n)~ O(nlogbk) | 稳定 | O(nb) | k:箱子数 b:基数 |
源地址: http://spaces.isu.edu.tw/upload/18833/3/web/sorting.htm