各种排序算法

排序算法

  • 算法的分类
    在这里插入图片描述
  • 算法的性能比较
    相关概念:
    稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面。
    不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面。
    时间复杂度:对排序数据的总的操作次数。反映当n变化时,操作次数呈现什么规 律。
    空间复杂度:是指算法在计算机内执行时所需存储空间的度量,它也是数据规模n的函数。
    在这里插入图片描述
    1- 冒泡排序
    每次前后相邻的进行比较,大的向后移动,冒出一个最大的,直到把所有元素都冒出为止
    在这里插入图片描述
    2 - 选择排序
    每次从未排序的里面取出一个元素与其他的n-1个元素进行比较,直到找出最小的那一个与未排序中的第一个元素进行交换,然后把此元素归为已排序队列,一趟完成。直到所有未排序的序列加入已排序序列,排序完成。
    在这里插入图片描述
    3 - 插入排序
    顺序把每一个元素与它前面的所有元素比较,插入适当的位置。直到排序结束。
    在这里插入图片描述
    4 - 希尔排序
    分为两组,(第一个与n/2一组,以此类推)每组中若大小不是顺序则进行交换,间隔分为两组,每组按插入排序的方法使每组都有顺序,然后整个为一组按插入排序的方法使整组都有顺序
    在这里插入图片描述
    5 - 归并排序
    先把数列分为K组,使每组都排好序,然后两组为一组再进行排序,以此类推直到所有元素都排好序
    在这里插入图片描述
    6 - 快速排序
    找一个为基准,然后把所有比它大的放在前面,比它小的放在后面,以此递归直到所有元素排序结束
    在这里插入图片描述
    7 - 堆排序
    先把所排数组形成一个完全二叉树,再进行初始化堆排列,即形成一个双亲结点大于孩子结点的完全二叉树,然后那根节点与树上的最后一个元素交换,断裂最后一个元素,使其它的二叉树再进行堆排列以此递归,最后进行层次遍历
    在这里插入图片描述
    8 - 计数排序
    统计每个数出现的次数,然后把这些不重复的数进行排列,最后带上重复的数进行排列
    在这里插入图片描述
    9 - 链排序
    形成一个线性表,从0到9,把他们当作十位数,然后对应的进行用链表链接到后面,最后进行层次遍历
    在这里插入图片描述
    10 - 基数排序
    用十个数从0到9,先把它们当作个位,对个位进行排序,然后把那十个数当作十位再进行排序
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

筱文rr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值