升序排列数组

  1. function selectionSort(arr) {
  2. let len = arr.length;
  3. for (let i = 0; i < len; i++) {
  4. let minIdx = i;
  5. for (let j = i + 1; j < len; j++) {
  6. if (arr[minIdx] > arr[j]) {
  7. minIdx = j;
  8. }
  9. }
  10. if (i !== minIdx) {
  11. [arr[i], arr[minIdx]] = [arr[minIdx], arr[i]];
  12. }
  13. }
  14. return arr;
  15. }

算法测试

  1. console.log(selectionSort([3, - 6, 1, -2, 9, 7]));
  2. // [ -6, -2, 1, 3, 7, 9 ]
  3. console.log(selectionSort([3, 12, 4, 6, 43, 6, 9]));
  4. // [ 3, 4, 6, 6, 9, 12, 43 ]
  5. console.log(selectionSort([12, 1, 5, 5, 7, 78]));
  6. // [ 1, 5, 5, 7, 12, 78 ]