算法大神之路——排序

从今天开始,给自己立下一个目标,每天晚上写一篇算法与数据结构的博客,用来给自己以后的算法工程师的目标铺路!

今天晚上就以算法里面的排序,作为自己的第一章节吧.

排序,就是讲一组数据,按照特定的规则去调换位置,使得数据具有某种顺序管理(递增或者递减).

在排序过程中,数据的移动方式分为"直接移动"和"逻辑移动"

直接移动是直接交换数据的位置,而逻辑移动则是仅仅改变数据的指针的值,而不移动数据的位置

数据排序后的几点好处:
     数据比较容易阅读
     数据比较容易统计和整理
     可大幅度减少数据搜索的时间

常见的排序分类

    冒泡排序,选择排序,插入排序,合并排序,快速排序,堆积排序,希尔排序,基数排序

排序名称 排序特性
冒泡排序 稳定,空间复杂度最佳
选择排序 不稳定,空间复杂度最佳
插入排序 稳定,空间复杂度最佳
希尔排序 稳定排序,空间复杂度最佳
快速排序 不稳定,空间复杂度最差O(n),最好为O(log2n)
堆积排序 不稳定.空间复杂度最佳
基数排序 稳定,空间复杂度为O(np)n为原始数据的个数,p为基底
原文地址:https://www.cnblogs.com/wangxinblog/p/7341644.html