什么是抉择排序?
根本思维:在一个排列中划分为有序区和无序区,有序区在右边,无序区在左边。首先在无序区中找到最小(大)元素,寄存到有序区的起始地位,而后,再从残余的无序区中持续寻找最小(大)元素,而后放到有序区的开端。以此类推,直到无序区没有元素可排列
直观表白:就是在一个数组中遍历查找,找到小的放在数组的左侧,而后在残余的元素中持续查找,直到排序实现
算法形容
假如一个数组中有 2 个区域
5, 8, 2, 3, 1
有序区为空,无序区为 5, 8, 2, 3, 1
-----------------------------------
首先:记录数组的第一个值(5),看看还有没有比它更小的,如果有则记录下来(1)。直到数组第一遍遍历实现。而后把最小的值(1)和无序区的第一个值(5)替换地位
后果:1, 8, 2, 3, 5
有序区为 1,无序区为 8, 2, 3, 5
-----------------------------------
而后进行第二遍遍历,在无序区中持续查找最小值(2),遍历结束后将最小值(2)与无序区第一值(8)替换地位
后果:1, 2, 8, 3, 5
有序区为 1, 2,无序区为 8, 3, 5
-----------------------------------
… 以此类推,直到无序区为空
<img src=”https://noxussj.top:3000/21/1.gif”></img>
参考资料
值得珍藏的十大经典排序算法
文章的内容 / 灵感都从下方内容中借鉴
- 【继续保护 / 更新 500+ 前端面试题 / 笔记】https://github.com/noxussj/In…
- 【大数据可视化图表插件】https://www.npmjs.com/package…
- 【利用 THREE.JS 实现 3D 城市建模(珠海市)】https://3d.noxussj.top/