分享职场程序员生活、职场攻略、领导同事相处技巧和创业资源

文|洪生鹏

面试时,排序算法经常会遇到。



张工毕业5年了,一直在做java开发,最近到某互联网公司面试,做了笔试题后,面试官看了觉得还不错,于是就让他手写冒泡选择排序法,张工写不出来,面试官直接怂了回去:毕业5你那了,连个冒泡排序都写不出来,你这五年都干些什么了。张工一脸的无助,不过确实不应该,类似冒泡排序这样基础的算法,平时应该要掌握好才对。

小编之前参加的笔试也遇到了手写排序算法的情况,关于冒泡排序可能基本都能写出来,但要是能把代码再优化一下,那就更好了,能给面试官留下更好的印象。

一般来说,两个for语句就好了:



这里涉及到一交换函数,交换函数有很多种写法,基本的写法:



有时候面试官会问,不用中间变量如何交换两个数。这时我们可以用位运算




当然一般来说,不建议这么做,还是建议用第一种方法,但要是面试官问到了,你要是能回答到这点,也是很不错。


细心的你应该会留意到,当我们需要排序的数组处于基本有序时,第一种做法还会做出很多不必要的查找判断,这样就会降低了代码的执行效率,那么可不可以优化一下呢,答案是肯定的,我们可以加个标识flag,用来判断本次排序中是否需要发生交换,如果没有发生交换,说明排序已经完成了,无需再做交换处理。





冒泡排序法基本来说还是挺不错的,数据规模不大时,还是推荐使用的,但相对于其他的排序算法(譬如快速排序)效率还是有些不足。

小编觉得,关于冒泡排序法还是挺重要,平时在学习中要注重基础。

不知对此你是怎么看待的,欢迎交流!

【END】




往期精选推荐







原来睡前玩手机就这么多不好,得知这几个危害后我默默地放下手机
<http://mp.weixin.qq.com/s?__biz=MzAxMDMxNTkzNQ==&mid=2454086216&idx=1&sn=834904491aa071423ddf46bacf951a9f&chksm=8ce0f3b8bb977aae727c21a7aec0128a4fed2cf046b9f8d43082796dcfa7c146334d7d78fbd0&scene=21#wechat_redirect>


男人在外越来越值钱,女人在家带小孩越来越不值钱?扎心了
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850932&idx=1&sn=5666b7f641e85b72d99cdcaaa669dca7&chksm=809a7f22b7edf6341e930f76372ae5435a48e6c0b5ce5074eaaf3e7f6420b580bd7f0e82c62a&scene=21#wechat_redirect>


月薪2W起的程序员做事细节曝光,终于知道了他们高薪的真相了
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850924&idx=2&sn=2488ef4e9a270f071d06cefc6bcf5d82&chksm=809a7f3ab7edf62c5f422f6f6e37c1056c97702c42e5b5c7bc216a71ba66b0d8e0aec967817d&scene=21#wechat_redirect>


过“夫妻生活“到底是早上好还是晚上好?
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850867&idx=1&sn=5ecd6006564fb4e3e4d3c4647a4afe4b&chksm=809a7f65b7edf673386cda6e9ed759152af94718aa08270a1e68175b72cc3fd62d713fadb669&scene=21#wechat_redirect>

你见过马化腾18年前编写的代码吗?
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850605&idx=1&sn=9c785b46507246b9411df832f0c3b413&chksm=809a7c7bb7edf56dd0945e0f10980bc5785941baa644d89f8f4f9193b71e6614e29ddf50a594&scene=21#wechat_redirect>

做好项目需求分析,才是项目管理的重中之重
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850647&idx=1&sn=1c3fd25086421b836fa7e06b425b0cc1&chksm=809a7c01b7edf5174c2e71ff5099d371dd7d6a560142f0f32d1529e2f7768021627db33a3265&scene=21#wechat_redirect>


一位工作8年程序员的成长感悟,值得深思
<http://mp.weixin.qq.com/s?__biz=MzAwODQ5MTA2NQ==&mid=2650850671&idx=1&sn=92e66cf4dec50b1dfd039d8ee5634405&chksm=809a7c39b7edf52ff446f011d2b035bcfa082d2efbbfc2e86075420826d1ff552fb501cfdd8d&scene=21#wechat_redirect>




分享职场攻略、技术心得和创业资源

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信