从今天开始要来理解排序演算法了!简单来说就是经过一连串的步骤将数字由小排到大或是由大排到小的演算法,下图列出几种常见的排序演算法,像是插入排序法、气泡排序法、合并排序法等等。
图片来源:https://dev.to/edwardcashmere/sorting-algorithms-2541
今天要介绍的是选择排序法,先找出数字里面最小的或最大的数,第一个步骤是先找最小的数字,再跟尚未排序的数字的最左边的互换。
假设现在有个尚未排序的阵列:[ 29, 10, 14, 37, 13]
29, 10, 14, 37, 13
选择排序法的执行步骤:
[10, 29, 14, 37, 13]
29, 14, 37, 13
10
[10, 13, 14, 37, 29]
14, 37, 29
10, 13
以此类推,直到所有数字都由小排到大
图档来源:https://visualgo.net/zh/
用js实作选择排序法
const selectionSort = (arr) => {
for (let i = 0; i < arr.length - 1; i++) {
let minIndex = i;
for (let j = i; j <= arr.length - 1; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
[arr[minIndex], arr[i]] = [arr[i], arr[minIndex]];
}
return arr;
};
selectionSort([29, 10, 14, 37, 13]);
参考资料:Sorting Algorithms
>>: 【从零开始的Swift开发心路历程-Day5】简易调色盘Part1
iOS工程师面试深入浅出- 物件导向的三大特性? 这题乍看之下是很本科系的问题,但事实上,当你在开发...
了解完套件更新的地方後,再回来玩其他的网路架构。依照day04的架构,严格说来树梅派wifi连上的其...
CKEditor 官方网站:CKEditor 5 | Powerful Framework with...
这次的铁人赛进入了最後一天,感谢夥伴们彼此的扶持,也感谢没有放弃的自己。这次的DRF系列文章希望能帮...
useLocation 函数是当 URL 网址改变时useState()会返回一个新的包含有关目前U...