插入排序
function selectkSort (arr) { if (arr.length === 0) { return []; } for (let i = 0; i < arr.length; i++) { let min = arr[i]; // 将当前位置的元素定义此轮循环当中的最小值
for (let j = i + 1; j < arr.length; j++) { if (arr[j] < min) { [arr[j], min] = [min, arr[j]]; } } arr[i] = min; } return arr; } const arr = [2, 3, 43, 5, 1, 7, 6, 3, 22, -1]; console.log('排序之前', arr.join(', ')); const res = selectkSort(arr); console.log('排序之后', res.join(', '));
排序之前 2, 3, 43, 5, 1, 7, 6, 3, 22, -1 排序之后 -1, 1, 2, 3, 3, 5, 6, 7, 22, 43
选择排序的基本思想就是从待排序列中选择出最小的,然后将被选出元素和序列的第一个元素互换位置(当前默认是升序排列),则互换完成后第一个元素就是整个序列的最小的元素,则一次选择排序结束。然后我们从剩下的子序列中选择出最小的,然后将该被选出来的元素和该子序列的第一个元素(即整个序列的第二个元素)互换位置,则当前整个序列的第二个元素就是当前序列中的次最小值,第二次选择排序结束。以此类推,直到该待排序列只剩下一个元素后,则整个序列有序。