- 快速排序、希尔排序、选择排序、堆排序 不稳定(快些选一堆)
- 冒泡排序、插入排序、归并排序 、基数排序 稳定
- 一趟冒泡排序,是将“大的”字母沉底(如果前面的大于后面的就交换,知道碰到比它大的,之后用那个比它大的继续比--最大的放在最后)
- 选择排序时间复杂度最差
- 选择排序(最大最小),堆排序(最大最小),冒泡排序(最大最小),快速排序(一个数左边都是小于等于它,右边都大于等于它)一趟都能确定一个元素的位置,直接插入排序不行,插入排序在每趟排序后能确定前面的若干元素是有序的,2路归并排序,第一趟排序结束都可以得到若干个有序子序列
- 拓扑排序运算只能用于有向无环图
- 归并排序中,归并的趟数是(O(logn))
- 堆排序平均执行的时间复杂度和需要附加的存储空间复杂度分别是(O(Nlog2N)和O(1))
- 只有100MB的内存,需要对1GB的数据进行排序,最合适的算法归并排序
- 对于基本有序的序列,按照冒泡排序方式最快
- 两分法插入排序所需比较次数与待排序记录的初始排列状态无关
- 快速排序:基准元素和末尾比,小于末尾不动,否则交换,接着和第一个比同理,一趟后找到位置,第二趟是左边和右边同时用同样的方法进行比较,又有两个确定位置。
- 数据表A中每个元素距其最终位置不远,为节省时间排序,应采用插入排序
- 外排中使用置换选择排序的目的,是为了增加初始归并段的长度
- 对n个数字进行排序,期中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是O(n)
- 按当前词所在的顺序排序表示要稳定
- 只有快速排序,基数排序,二路归并排序,需要空间(会计归)logn,
- 归并排序和堆排序最坏为O(nlogn),基数排序为O(d(r+n)),其它为O(n^2)
- 插入排序为从第二个开始依次和它前面比它大的交换,希尔排序是步长依次减少的插入排序,基数是0-9个桶,依次把个位相同的放入桶,倒出,再把十位相同的倒入,倒出,以此类推最后就有序了。计数排序是几个有范围的桶,桶内排好序然后倒出来。快速排序是和最后一位比,第二位,以此类推。
- 优化过后的冒泡排序算法关键字比较的次数与记录的初始排列次序也有关
- 叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左子树的值、小于等于其右子树的值,注意不是仅仅是孩子而是整颗子树。
- 拓扑排序:由一个集合上的一个偏序来得到集合上的一个全序。所以只能用在有向图中,且如果有向图存在环的话也无法得到图的所有节点,所以拓扑排序只能用在有向无环图中-AOV网。个数就是符合前驱就行。
- 快速排序比较快的,先找中间的在开头的,之后代入看看吧
- 如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的
- 几乎有序时, 快排的时间复杂度退化到O(n*n)最慢,无序时, 快排才比较省时间O(n*logn)
- 记的插入排序第n趟是n+1个数有序
- 前面有序用插入排序,比较次数少
- 在外部排序时,利用选择树方法在能容纳m个记录的内存缓冲区中产生的初始归并段的平均长度为2m个记录
- 内排序:我们常用的选择、交换、插入、归并、基数排序都属于内排序,只用在内存读一次原始数据即可完成排序。
- 外部排序:指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。
- 采用递归方式对顺序表进行快速排序,递归次数与每次划分后得到的分区的处理顺序无关
- 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。
- 堆排序:按数组顺序构造完全二叉树,之后从最后一个非叶子节点n/2向下取整,开始调整结构,看是大顶堆还是小顶堆,每次调整要是倒置下面不对了就继续调整,从左往右,从下往上依次调整。一次完了后将顶和最后一个元素交换位置,接着对其前n-1进行同样操作。
- 若将顺序存储更换为链式存储,则希尔排序 、堆排序算法的时间效率会降低
- 计数排序的空间复杂度为 O(k),计数排序的时间复杂度为O(n+k)
- 选择排序元素比较次数与元素的初始排列无关,希尔、归并、插入都有关
- 排序趟数与序列的原始状态有关的排序方法是优化的起泡和快速
- 堆排序适用于个数较多的情况,当深度为k时,最多比较2(k-1)
- 冒泡排序最多比较n(n-1)/2次
- 希尔排序平均时间复杂度为O(n^1.3)
- 2路插入需要n个辅助空间
- 二叉排序树比折半查找快
- 归并,基数排序是外部排序其它为内部排序