排序算法学习(2)
来源:互联网 发布:模拟学生选课java代码 编辑:程序博客网 时间:2024/06/01 10:46
1、 堆排序每趟总能选出一个最大值或者最小值位于根结点。
冒泡排序总是两两比较选出一个最小值位于数组前面。(第一趟排序后最大值会在最后面,第二趟次最大值在次最后面)
选择排序(第一趟排序之后最小值会在最前面,第二趟排序会在次前面)
快排选出的枢轴在一趟排序中就位于最终的位置。(以一个值为分界点)
直接插入排序不一定位于最终的位置,因为不确定后面插入的元素对于前面的元素是否有影响。(特征第一趟排序范围为0~1,前一个数比后一个小,第二趟排序范围0~2,前三个数从小到大排列)
2、 关键字比较的次数与记录的初始排列次序无关的是:选择排序(每一趟从待排序的数据元素中选择最小(最大)的一个元素,顺序放在已排好序的数列最后,直到全部待排序的数据元素排完。可以看到,每次都是遍历一遍剩下要排序的部分,找出其最大值或最小值。所以关键码比较次数与记录的初始排列无关);
有关的是希尔排序、冒泡排序、直接插入排序、归并排序。
3、 基本有序情况下对插入排序是最好的。
4、 归并排序和输入无关,线性对数级别。
逆序是插入的最坏情况。
冒泡和选择输入无关。
5、 快排的平均时间复杂性为O(nlogn),平均空间复杂性为O(log n)
(自己参考《妙趣横生的算法》还有点击打开链接所)
阅读全文
0 0
- 排序算法学习(2)
- 算法学习之排序算法:插入排序(直接插入排序、折半插入排序、2-路插入排序)
- 算法导论—排序算法学习(2)
- 算法学习之排序(2)--冒泡排序
- 学习排序算法2--插入排序
- 算法学习(排序一)插入排序
- 算法学习(排序二)归并排序
- 算法学习(排序三)快速排序
- 算法学习(排序五)堆排序
- 排序算法(共同学习)
- 《算法》学习笔记(排序)
- 排序算法学习(1)
- 排序算法学习(3)
- 排序算法学习(4)
- 排序算法学习(5)
- 排序算法学习(6)
- 排序算法学习(一)
- 算法学习(归并排序)
- 求职网站
- Win10配置ADB工具
- Unity中的网络编程
- netty基础入门(一)定义理解
- 哈希函数
- 排序算法学习(2)
- nosetests
- hadoop连接mysql数据库执行数据读写数据库操作
- 封装Id、类混用,多个类并用
- QQ面板拖拽在线状态改变
- 2017-05-21 DBA日记,SQL语句诊断思维图
- Active learning-Fine-tuning Convolutional Neural Networks for Biomedical Image Analysis: Actively a
- ActivityMQ入门案例
- python learning3