六大排序算法通俗化解释:插入排序、冒泡排序等不再混淆!

本文介绍了几种常见的排序算法,包括插入排序(类似插队)、希尔排序(分组排序),以及选择排序、冒泡排序(比喻为泡泡上升)、堆排序(基于二叉树)和快速排序(分割和递归)。这些算法在面试和编程中都很重要,帮助读者理解它们的工作原理和应用场景。
摘要由CSDN通过智能技术生成

常见的排序算法有很多种,他们的原理并不难,但是很多朋友都容易记混,在面试、考试时一时间去分不清楚,那不就吃大亏了嘛

(一)插入排序

       插入排序的精髓是,假定前面都已经排好序了,新元素在这个已经排好序的队列里,找到自己的位置,并插入进去,有点像插队,这个就叫插入排序。

看图理解一下:

(二)希尔排序

        希尔排序不好从名字上进行记忆,需要多花一点精力。

        排序也是一样的要分组,只不过这次分组不是邻居一组,而是等距离元素为一组。

        比如[1 2 3 4 5 6 7 8 9 10] 等距为5分组:[1 6] [2 7] [3 8] [4 9] [5 10]

        每组内部从小到大排好后,再分组。新的距离是上次的一半:2.

        排序,分组,新距离:1;

        排序结束。

(三)选择排序

        这个排序的主观性很强,你可以理解为你站在他们面前,挑选n次,每次都逐个挑选出最小的。

        这样的排序是“你”选择的结果,所以是“选择排序”。

(四)冒泡排序

        冒泡,联想到在水中升起来的泡泡,距离水面越近泡泡体积最大,也就是说,大泡泡往上走。冒泡排序,就是最大的值一直向后走的排序。     

(五)堆排序

        这个排序涉及二叉树,肯定就非常好记忆啦。

        常见的有大根堆(升序)和小跟堆(降序)。默认为升序。

(六)快速排序

        这个排序算法像是一刀切,有大有小的数字乱放在地上,一声令下:小的去左边,大的去右边!

        然后在左边和右边继续喊:小的在左,大的在右!

        直到每个小单元里都只有一个元素。

图源http://t.csdnimg.cn/7k7lj

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值