踩坑日记 - 排序之选择排序
1、选择排序
2、排序原理
通过遍历依次找到数组中最小的元素,依次放置数组最前面
3、排序步骤
1)从原始数组中找出最小的元素
2)将找到的最小元素放在数组最前面
3)从剩下的元素只能寻找最小的元素
4)将找的元素放在之前最小元素的后面
5)重复以上1至4步骤,直至排序完毕
4、复杂度
1)时间复杂度
O(n²)
时间复杂度最稳定的算法之一,始终是O(n²)
2)空间复杂度
O(1)
5、使用环境
数据规模小;
6、优点
不用占据额外的内存空间
7、例子
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>排序 - 选择排序</title>
</head>
<body>
</body>
</html>
<script>
const originArr = [20, 25, 1, 2, 78, 100, 56, 5, 22,66];
const len = originArr.length;
console.log('这是数组原序列:[20, 25, 1, 2, 78, 100, 56, 5, 22,66]')
originArr.forEach((item1, i) => {
let minIndex = i;
for(let j = i; j < len; j++) {
if (originArr[j] < originArr[minIndex]) {
const temp = originArr[minIndex];
originArr[minIndex] = originArr[j];
originArr[j] = temp;
minIndex = j;
}
}
console.log('这是第' + (i + 1) + '次循环的结果:' + JSON.parse(JSON.stringify(originArr)))
})
console.log('这是最终结果:' + originArr)
</script>
结果:

参考:
浙公网安备 33010602011771号