选择排序
- 思路:不断遍历数组,将最小的往前放
- 第一遍:从i=0 遍历数组,找到最小的,放在i=0的位置
- 第二遍:从i=1 遍历数组,找到最小的,放在i=1 的位置
- ……
- 重复上述过程,直到比较到最后一位停止
- 返回排序好的数组
选择排序的实现
- 测试多次,排序一个长度为10000的数组,时间平均为 0.215s,比冒泡排序快

/** * 1.从i=0遍历数组,将最小值放在i=0位置 * 2.从i=1遍历数组,将最小值放在i=2位置 * ... * 4.重复上述过程,直到i=nums.length-2 */function selectSort(nums) { // 设置一个起始最小的索引值 let indexMin; // 中间临时变量 let temp; for (let i = 0; i < nums.length - 2; i++) { indexMin = i; for (let j = i; j < nums.length - i; j++) { if (nums[indexMin] > nums[j]) { indexMin = j; } } if (indexMin !== i) { temp = nums[i]; nums[i] = nums[indexMin]; nums[indexMin] = temp; } } return nums;}// let arr = [5, 4, 3, 2, 1];// console.log(selectSort(arr));function createArr(n) { let arr = []; for (let i = n; i > 0; i--) { arr.push(i); } return arr;}let arr = createArr(10000);console.log(selectSort(arr));
