选择排序史上最经典实现方式

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)

运行效果展示

 

以上是关于选择排序史上最经典实现方式的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序史上最经典的实现

快速排序算法史上最经典实现

sort函数详解(史上最完整QAQ)

史上最易理解的快速排序原理详解以及Arrays.sort方法

九种经典排序算法详解(冒泡排序,插入排序,选择排序,快速排序,归并排序,堆排序,计数排序,桶排序,基数排序)

史上最经典的几个Java练手项目!