前言
在计算机考研中,数据结构是一门很重要的课程,在开发中更是十分重要。下面几个是我再考研期间发现的宝藏视频,是关于各种排序算法的,分享给大家。
选择排序
选择排序-舞动的数据结构
插入排序
插入排序
冒泡排序
冒泡排序-舞动的数据结构
希尔排序
希尔排序-舞动的数据结构
堆排序
堆排序
快速排序
快速排序-舞动的数据结构
归并排序
归并排序
总结
以下是上面视频中各种算法的时间复杂度、空间复杂度和稳定性。但是并不是时间复杂度最低的就是最好的,要根据实际需要选择最好的排序方法。√ 表示稳定,× 表示不稳定。
排序算法 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|
选择排序 | O(N^2) | O(N^2) | O(1) | × |
插入排序 | O(N^2) | O(N^2) | O(1) | √ |
冒泡排序 | O(N^2) | O(N^2) | O(1) | √ |
希尔排序 | O(N^d) | O(N^2) | O(1) | × |
堆排序 | O(Nlog2(N)) | O(Nlog2(N)) | O(1) | × |
快速排序 | O(Nlog2(N)) | O(N^2) | O(log2(N)) | × |
归并排序 | O(Nlog2(N)) | O(Nlog2(N)) | O(N) | √ |