数据结构(Data-Structure) 排序 1. 分类 直接选择排序 直接插入排序 冒泡排序 希尔排序 快速排序 归并排序 堆排序 计数排序【未整理,代码见总结】 桶排序 2. 比较排序算法 2-4 列为时间复杂度 名称 最好情况 平均情况 最坏情况 空间复杂度 稳定性 直接插入排序 $O(n)$ $O(n^2)$ $O(n^2)$ $O(1)$ 稳定 希尔排序 $O(n)$ $O(n^{1.3})$ $O(n\log^2)$ $O(1)$ 不稳定 快速排序 $O(n\log{n})$ $O(n\log{n})$ $O(n^2)$ $O(n\log_{2}{n})$ 不稳定 冒泡排序 $O(n)$ $O(n^2)$ $O(n^2)$ $O(1)$ 稳定 直接选择排序 $O(n^2)$ $O(n^2)$ $O(n^2)$ $O(1)$ 不稳定 堆排序 $O(n\log_{2}{n})$ $O(n\log_{2}{n})$ $O(n\log_{2}{n})$ $O(1)$ 不稳定 归并排序 $O(n\log_{2}{n})$ $O(n\log_{2}{n})$ $O(n\log_{2}{n})$ $O(1)$ 稳定 计数排序 $O(n+k)$ $O(n+k)$ $O(n^2)$ $O(k)$ 稳定 桶排序 $O(n)$ $O(n+k)$ $O(n^{2})$ $O(n*k)$ 稳定 队列 顺序队列 线性表 单链表 栈 栈 树 二叉树 层次遍历 哈夫曼树 搜索树 AVL树 红黑树 图 图 Floyd算法 Dijkstra算法