从今天开始(2017.7.2),每天写一篇博客坚持到毕业,内容为找工作时可能会测试的各种计算机内容,首先从数据结构与算法开始,这也是重点毕业笔试面试需要的。万事开头难,从简单的排序开始。。
注:对n较大的排序记录。一般的选择都是时间复杂度为O(nlog2n)的排序方法(快排、堆排、归并排序)。
1、快速排序:
时间复杂度:O(n*lgn)
空间复杂度:O(n^2)
最坏情况:O(n*lgn)
不稳定
以基准数(通常是第一个)为中心,将小于基准数与大于基准数的数分为左右两边划分。
平均性能最好,但如果是初始序列有序或基本有序时与冒泡无异,为改进之,用三者取中的方法选取基准,将排序区间的两个端点与中点三个记录关键码居中的调整为支点记录
2、堆排序
直接选择的改进方法,树形选择排序。
步骤:建立初始堆(按树形结构存储)
输出堆顶元素后调整剩下的元素继续构建新堆
3、归并排序
4、直接插入
5、简单选择排序
6、冒泡排序
7、希尔排序
8、基数排序