活动地址:CSDN21天学习挑战赛
经典的排序算法,很多人都听过,很多人也许用过,但是也有很多人,听过没见过。为什么呢?现在我们有了越来越多的框架、依赖包,我们将能用到排序的实际场景,作为业务将其封装成了函数,所以,一些人只知函数而不知其运行逻辑。
基于以上,为了让自己更好的理解函数运行逻辑,整理了一些基本排序的方法的运行规则,以及部分个人理解,希望能给大家一些帮助。
本文将讲述选择排序,及选择排序和冒泡排序的区别!
因为很多人仔细回想时,无法准确说明选择排序和冒泡排序的区别,甚至认为他们是同一个!
选择排序(Selection sort)是一种简单直观的排序算法。顾名思义,选择排序的核心要点在于选择,选择数组中的最大值或最小值!,然后按逻辑放到指定位置。

function selectionSort(array) {
//外循环控制次数
for (var i = 0; i < array.length; i++) {
//假定最小值用于比较
var min = array[i];
//j=i+1使其从剩余元素中进行筛查
for (var j = i + 1; j <= array.length; j++) {
//从剩余数字中寻找最小值
if (min > array[j]) {
//更新最小值
min = array[j];
//交换a[j]和a[i]
var item = array[j];
array[j] = array[i];
array[i] = item;
}
}
}
console.log("selectionSort result:", array);
}
selectionSort([4, 5, 1, 3, 2]);
输出值:

选择排序的时间复杂度,
时间复杂度:O(n^2);
空间复杂度:O(n);
区别:
优劣:
看似选择排序和冒泡排序实现逻辑相同,且均能实现排序功能,但是实则在运算速率上不可同日而语,这就是基础算法的魅力。
圆越大,不可预知的可能越多!