第八章学习小结

第八章:排序

排序的稳定性:两次相同排序后结果相同则稳定,否则不稳定。稳不稳定没有好坏之分,只有适不适合解决问题之分。

算法效率因素:空间+时间(对比+移动交换)

插入排序

1.插入排序(类似冒泡排序):稳定,时间O(n^2)(两个for循环),空间O(1), 数据多时不适合(比较和移动太复杂)

2.折半插入排序: 稳定,时间O(n^2)(比较少log2n只和数据量有关但移动两个for循环),空间O(1),适合无序,数据多时

交换排序

1.冒泡排序:类似插入排序,劣与插入排序(移动更多)

2.快速排序(递归):大概是选定一个标值存着,左边指针low,右边指针high,在两者不相撞时,先high开始往左,小于标值则和标值交换,到从low往右,大于标值则和标值换,循环直到结束

不稳定,时间O(nlog2n),空间(log2n)或O(n)(要用到栈空间),适合无序,数据多时。主要用顺序存储,因为要low,high定位

3.堆排序:两步骤:1.建初堆:根节点比左右孩子大的树

  2:调整堆:每次把最大调整到根节点后按从下往上,从右往左交换每个节点。

还有好多排序方法,都优于冒泡排序,但算法复杂所以平时主要用快速排序和冒泡排序。

posted @ 2020-07-12 22:58  flag在哪里  阅读(98)  评论(0编辑  收藏  举报