如何让快速排序实现更简单

昨天是柚子班的第四期课程,课程起于去年的11月份,当时阿里内忧外患,各种内网撕逼不穷,为了贡献自己的一份力,孤尽老师内网发了个贴,说是开班授课,当时他自己也没想到报名的人会有那么多,只是想着即使只要一个人报名,他也会把课程上下去。实际上竞争是相当激烈,阿里内网芝麻分最高的21个同学可以参加,而总的报名人数突破了1400+,通过熟人各种拉芝麻,有幸最后能入选成为柚子班的一员。

通过几期的课程,真的感受到孤尽老师是一个能力牛逼,且有情怀的人,学到了非常多的东西,从技术,到思想,到工作的方方面面都受益匪浅。

到第四期,人员变动也很大,孤尽老师已经离开了阿里,成为了开课吧的CTO,21个同学里面也有同学已经入职,加入了字节或其他,但是大家的初衷始终不变,孤尽老师想着把知识继续传播下去,大家都想继续从孤尽老师这边学到更多的东西,传递下去,从而影响更多人。即使离开了阿里,孤尽老师也依然想着把这个课程的12期全部上完,真的很感激孤尽老师。

本期课程依然相当丰富,上午由王坚博士的秘书小姐姐给大家介绍了2050项目的初衷和很多有意思的事情,接着由第四期的班长给大家分享了Spring boot,Spring Cloud,Mybatis-plus的原理和应用,孤尽老师让大家纸笔手写算法,并且分享了手撕算法的一些心得,最后还给大家分享了一些当CTO的心得,以及从员工到CTO的心路历程的改变。

排序算法在大家面试的经常会准备,比如现在面试官让你手写一个快速排序,并且要求写的算法一字不漏录入到IDE,要求运行没问题且结果准确,你有把握么? 作为阿里P6 P7的同学,21个同学里面没有一个完全正确的,实在有点拉跨,侧面也说明了大家的基本功还是不够扎实。
 

孤尽老师教了大家如何写算法的思想,

1.首先从递归的特性入手,

1)必须要有返回条件

2)对自己方法的循环调用

因此,首先可以写下:

2. 从快排的特性入手

1)有个基准值,比基准值小的往左排,比基准值大的往右排。

2)有两个指针,左指针不断往右找大于基准值的位置,右指针不断往左找小于基准值的位置,然后将两个位置的值互换,直到左指针大于等于右指针

3. 加入值调换的逻辑

 根据这个思路,是否觉得快排的实现简单了许多,并且到时候如果突然要你手撕一下,是否也能so easy实现了呢。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值