• 选择排序算法是一种原址比较排序算法
  • 选择排序大致的思路是找到数据结构中的最小值并将其放置在第一位,接着在剩余数据中找到第二小的值并将其放在第二位,以此类推。
  • 其时间复杂度为 O(n^2)

思路

  1. 每次循环,默认未排序的元素中的第一个元素,为最小值,因此其索引为最小值索引
  2. 剩下的元素依次与最小值进行比较,若出现元素比最小值要小,则将该元素的索引赋值给最小值索引
  3. 一轮比较过后,将最小值索引对应的元素与当前循环的第一个元素置换位置
  4. 经过 n-1 轮循环后,数组为正序排列

代码

  1. const selectionSort = (array) => {
  2. let minIndex;
  3. for (let i = 0; i < array.length - 1; i++) {
  4. minIndex = i;
  5. for (let j = i + 1; j < array.length; j++) {
  6. if (array[j] < array[minIndex]) {
  7. minIndex = j;
  8. }
  9. }
  10. [array[minIndex], array[i]] = [array[i], array[minIndex]];
  11. }
  12. return array;
  13. };
  14. const list = [3, 4, 5, 1, 2, 6, 1.2];
  15. console.log(selectionSort(list));