408 DataStructure_Algorithm - 8.3 交换排序

目录

交换排序

冒泡排序

定义

代码实现

时空复杂度分析

算法的特点

稳定的

适用于链表

冒泡排序总结

快速排序

定义

代码实现

时间复杂度分析

空间复杂度分析

递归层数参考树

时间复杂度最坏情况:已经排好序,正序或者逆序

比较好的情况:分布比较均匀

枢轴选择的优化

稳定性

总结

练习题

 

交换排序

 

408 DataStructure_Algorithm - 8.3 交换排序_第1张图片

冒泡排序

定义

408 DataStructure_Algorithm - 8.3 交换排序_第2张图片

代码实现

408 DataStructure_Algorithm - 8.3 交换排序_第3张图片

时空复杂度分析

408 DataStructure_Algorithm - 8.3 交换排序_第4张图片408 DataStructure_Algorithm - 8.3 交换排序_第5张图片408 DataStructure_Algorithm - 8.3 交换排序_第6张图片

算法的特点

交换需要移动3次

swap函数内部的移动

408 DataStructure_Algorithm - 8.3 交换排序_第7张图片

稳定的

408 DataStructure_Algorithm - 8.3 交换排序_第8张图片

 

适用于链表

408 DataStructure_Algorithm - 8.3 交换排序_第9张图片

 

冒泡排序总结

408 DataStructure_Algorithm - 8.3 交换排序_第10张图片

快速排序

定义

408 DataStructure_Algorithm - 8.3 交换排序_第11张图片408 DataStructure_Algorithm - 8.3 交换排序_第12张图片

代码实现

 

时间复杂度分析

 

空间复杂度分析

递归层数参考树

408 DataStructure_Algorithm - 8.3 交换排序_第13张图片408 DataStructure_Algorithm - 8.3 交换排序_第14张图片

 

时间复杂度最坏情况:已经排好序,正序或者逆序

408 DataStructure_Algorithm - 8.3 交换排序_第15张图片

比较好的情况:分布比较均匀

 

枢轴选择的优化

 

408 DataStructure_Algorithm - 8.3 交换排序_第16张图片

稳定性

408 DataStructure_Algorithm - 8.3 交换排序_第17张图片

 

总结

 

NOTICE:图中有个小错误

已红线标识出

 

练习题

408 DataStructure_Algorithm - 8.3 交换排序_第18张图片408 DataStructure_Algorithm - 8.3 交换排序_第19张图片408 DataStructure_Algorithm - 8.3 交换排序_第20张图片408 DataStructure_Algorithm - 8.3 交换排序_第21张图片

 

你可能感兴趣的:(计算机408)