1月第1题:如何优化简单的选择排序算法?

Posted 前端面试每天1题

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1月第1题:如何优化简单的选择排序算法?相关的知识,希望对你有一定的参考价值。


  • 选择排序的基本思想:每次循环取出最小(最大)元素作为首元素;

  • 算法实现时,每次确定最小元素时都会通过不断比较并且交换,来保证首位置最小;

  • 不难发现,在确定最小之前的交换都是没有意义的。我们可以设置一个变量 min 来记录最小值的下标,最后在执行交换操作即可。

function selectSort(array) { let length = array.length; // 如果不是数组或者数组长度小于等于 1,直接返回,不需要排序  if (!Array.isArray(array) || length <= 1) return; for (let i = 0; i < length - 1; i++) { let minIndex = i;  // 设置当前循环最小元素索引  for (let j = i + 1; j < length; j++) {  // 如果当前元素比最小元素索引,则更新最小元素索引  if (array[minIndex] > array[j]) {  minIndex = j;  }  } // 交换最小元素到当前位置  [array[i], array[minIndex]] = [array[minIndex], array[i]]; } return array;}


以上是关于1月第1题:如何优化简单的选择排序算法?的主要内容,如果未能解决你的问题,请参考以下文章

12月第31题:如何优化冒泡排序?

1月第317题:简单描述一下 “希尔排序” ?

计数排序再思考——从2020年1月第16题谈起

数据结构和算法-面试题

经典算法题 :递归快速排序复杂度等5选择题道题

视频解说:如何快速高效的刷算法题 —— 排序专题