从今天开始,给自己立下一个目标,每天晚上写一篇算法与数据结构的博客,用来给自己以后的算法工程师的目标铺路!
今天晚上就以算法里面的排序,作为自己的第一章节吧.
排序,就是讲一组数据,按照特定的规则去调换位置,使得数据具有某种顺序管理(递增或者递减).
在排序过程中,数据的移动方式分为"直接移动"和"逻辑移动"
直接移动是直接交换数据的位置,而逻辑移动则是仅仅改变数据的指针的值,而不移动数据的位置
数据排序后的几点好处:
数据比较容易阅读
数据比较容易统计和整理
可大幅度减少数据搜索的时间
常见的排序分类
冒泡排序,选择排序,插入排序,合并排序,快速排序,堆积排序,希尔排序,基数排序
| 排序名称 | 排序特性 |
| 冒泡排序 | 稳定,空间复杂度最佳 |
| 选择排序 | 不稳定,空间复杂度最佳 |
| 插入排序 | 稳定,空间复杂度最佳 |
| 希尔排序 | 稳定排序,空间复杂度最佳 |
| 快速排序 | 不稳定,空间复杂度最差O(n),最好为O(log2n) |
| 堆积排序 | 不稳定.空间复杂度最佳 |
| 基数排序 | 稳定,空间复杂度为O(np)n为原始数据的个数,p为基底 |
浙公网安备 33010602011771号