选择排序史上最经典实现方式
Posted 我想月薪过万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择排序史上最经典实现方式相关的知识,希望对你有一定的参考价值。
选择排序原理
不得不说,选择排序和上一节我们讲的冒泡排序真的有点像,但是两者还是有点区别的,差别在于 冒泡排序 是相邻元素进行比较,选择排序 是选择一个基准,和其余的全部进行比较。
代码实现
- 双循环法
let dataArr = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
var selectSort = (data, len) =>
//目标数组有 len 个元素,所以我们每个遍历数组中的每一个元素 进行比较
for (let i = 0; i < len; i++)
//第一层循环选定一个基数之后,再利用一层循环遍历 基数 之后的元素,找到小的替换到最前面
for (let j = i + 1; j < len; j++)
if (data[i] > data[j])
let temp = data[j]
data[j] = data[i]
data[i] = temp
selectSort(dataArr, dataArr.length)
console.log(dataArr)
- 递归法
let dataArr = [44, 3, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48]
let selectSort = (data, start, len) =>
if (start >= len) return
for (let i = start + 1; i < len; i++)
if (data[start] > data[i])
let temp = data[start]
data[start] = data[i]
data[i] = temp
++start;
selectSort(data, start, len)
selectSort(dataArr, 0, dataArr.length)
console.log(dataArr)
运行效果展示
以上是关于选择排序史上最经典实现方式的主要内容,如果未能解决你的问题,请参考以下文章
史上最易理解的快速排序原理详解以及Arrays.sort方法