Loading

【408】2020

t5
问的是二叉排序树,没问二叉平衡树=.=


t11
稳定的排序算法:

直接插入、冒泡、2归并、基数排序

空间复杂度:

快速排序:借助栈,空间复杂度一般是O(logn),但在最坏情况下会增长到O(n)
2路归并:因为需要借助辅助空间,所以其空间复杂度一般是O(n)
基数排序:需要借助r个队列,因此其空间复杂度为O(r)

初始时元素:

基本有序:直接插入排序 和 冒泡排序 时间复杂度可以达到O(n)
基本有序或者基本逆序:快速排序 时间复杂度就达到了O(n^2)

每趟排序之后可以确定最终位置:

冒泡 和 堆排 每趟可以确定一个最大值或最小值
快排 每趟也可以确定最终位置(但不一定是一个,要看枢轴划分到哪了)

因为直接插入排序 记录移动次数 一般比 简单选择排序要多,因此当基本本身信息量大,使用简单选择排序
元素基本有序:使用 冒泡 或 直接插入————————时间复杂度都是O(n)
若n较大,一般使用 快排、堆排、归并————————其中快排堆排不稳定,归并稳定;;堆排的空间复杂度为O(1)
n较大,关键字位数可分解,使用基数排序
记录本身信息量很大的时候,可采用链表作为存储结构
注意,若采用链表作为存储结构,那么一般来说,快排、堆排、希尔排序就用不了了


posted @ 2022-11-09 19:05  ColdWater216  阅读(45)  评论(0)    收藏  举报