常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:

wKioL1kSzhPh9ioxAAHcPIbdiTU597.png-wh_50


选择排序

  选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n2) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。通俗来说就是你们中间谁最小谁就出列,站到队列的最后边,然后继续对着剩余的无序数组说你们中间谁最小谁就出列,站到队列的最后边,一直到最后一个,继续站到最后边,这样数组就有了顺序,从小到大。


1、算法步骤

    1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置

    2. 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

    3. 重复第二步,直到所有元素均排序完毕。



2、动图演示


wKiom1kSzqbgjq4sAAAs5uKwBWE096.png-wh_50


3、JavaScript 代码实现


wKioL1kSzvXDvWCcAABkqxEcOHU539.png-wh_50


4. Python 代码实现


wKioL1kSzzmBN3mNAAAlY8bJ2D0968.png-wh_50



5、java实现


wKiom1kSz2Wi2DsbAABtumKWm4Q050.png-wh_50



6、Go 代码实现


wKioL1kSz5WztAspAAA6XVosI18140.png-wh_50



 远方 前端和golang后端微服务开发,架构,团队主要关注前端,客户端,并发响应。现在就职于外企,技术总监,微服务架构。经常活跃在 从零开始自学前端方向、大前端技术、全栈技术群ionic2混合式app开发等微信群里面做一些分享,希望通过自身的影响让周围的人能够感受多点这个行业的余温,乐于去帮助那些需要解决技术问题的人群。微信请联系:Sen0676 


  近期我将教会你如何自己学习编程技术,如何自己去写一份不错的简历,找到自己想要的工作。梦想从这里开始。结合我自己学习前端找工作的经历来说,如何系统学习、模块化。我将分享我自己如何自学前端,如何在实践中提升开发效率、规范开发流程。

  • 1、前端的自学和提高

  • 2、简历的制作和投递

  • 3、前端面试工作时应该掌握的技能

  • 4、前端面试的一些问题设置

  • 5、现在企业需要前端招聘的人才等