在这个“信息爆炸”的年代,找到好的资源有时也不是件易事。拷贝写资源过来为自己用,免得以后难找。后面再自己总结。
排序类别 | 排序方法 | 时间复杂度 | 空间复杂度 | 稳定性 | 复杂性 | ||
平均情况 | 最坏情况 | 最好情况 | |||||
交换排序 | 冒泡排序 | O(N2) | O(N2) | O(N) | O(1) | 稳定 | 简单 |
交换排序 | 快速排序 | O(Nlog2N) | O(N2) | O(Nlog2N) | O(Nlog2N) | 不稳定 | 较复杂 |
插入排序 | 直接插入排序 | O(N2) | O(N2) | O(N) | O(1) | 稳定 | 简单 |
插入排序 | 希尔排序 | O(Nlog2N) | O(N1.5) |
| O(1) | 不稳定 | 较复杂 |
选择排序 | 简单选择排序 | O(N2) | O(N2) | O(N2) | O(1) | 不稳定 | 简单 |
选择排序 | 堆排序 | O(nlog2n) | O(nlog2n) | O(nlog2n) | O(1) | 不稳定 | 较复杂 |
归并排序 | 归并排序 | O(nlog2n) | O(nlog2n) | O(nlog2n) | O(n) | 稳定 | 较复杂 |
基数排序 | 基数排序 | O(d(n+r)) | O(d(n+r)) | O(d(n+r)) | O(n+r) | 稳定 | 较复杂 |
三个时间复杂度都一样则与初始排序无关
二叉查找树:
二叉树采用中序遍历:
那因为二叉搜索树的特征决定的,因为
二叉搜索树要么是一棵空树,要么:1)如果左子树不空,则根结点大于左子树根结点;2)如果右子树不空,则根结点小于右子树的根结点;3)根结点的左右子树均是一棵二叉搜索树。当对二叉搜索树进行中序遍历时,先访问的是左子树,然后是根,再访问的是右子树,而二叉搜索树有左子树的结点值《根《右子树结点的值,所以可以得到一个有序的序列
插入:
删除:
参考文献:
http://www.cnblogs.com/jingmoxukong/p/3790604.html (这里也提供了总的图)