资讯专栏INFORMATION COLUMN

js 排序算法(持续更新中)

dackel / 2832人阅读

摘要:以此类推,直到所有元素均排序完毕。假设中最小值得为寻找最小的数将最小数的索引保存将实际最小值为赋值给,即获得当前一轮排序后的新过程结果控制台实例

冒泡排序

//原理:每次都是前后两两比较然后根据大小交换位置(可以从小到大,或者相反)
//1.prepare swap fn
function swap(array,index1,index2) {
    var aux = array[index1];
    array[index1] = array[index2];
    array[index2] = aux;
}
//2.double for
function bubbleSort(arr){
    let length = arr.length
    for (let i=0;i arr[j+1]){
                swap(arr,j,j+1)
            }
        }
        console.log(arr)    //过程
    } 
    console.log("result",arr)   //结果
}
let test = [1,5,4,3,2]
bubbleSort(test)

控制台运行实例:

选择排序

function swap(array,index1,index2) {
    var aux = array[index1];
    array[index1] = array[index2];
    array[index2] = aux;
}
//selectionSort
//原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,
//然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
//以此类推,直到所有元素均排序完毕。 
function selectionSort(arr) {
    let len = arr.length;
    for (let i = 0; i < len - 1; i++) {
        let minIndex = i;   //假设arr中最小值得index为minIndex
        for (let j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {     // 寻找最小的数
                minIndex = j;                 // 将最小数的索引保存
            }
        }
        swap(arr,minIndex,i)    //将实际最小值index(为i)赋值给minIndex,即获得当前一轮排序后的新arr
        console.log(arr)   //过程
    }
    console.log("result",arr)   //结果
    return arr;
} 
let test = [5,4,1,3,2]
selectionSort(test) 

控制台实例:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104869.html

相关文章

  • 前端需要知道的数据结构与算法(持续更新...)

    摘要:通常需要在实际的计算机运行才知道具体的执行时间。算法的执行时间往往和算法代码中语句执行的数量有关。空间复杂度运行一段程序的内存占用,空间复杂度通常指的是算法程序在计算机只想中只想所需要的存储空间。 基本数据结构 JS 数据类型 基本类型(栈 stack): Number String Boolean Null Undefined 和 Symbol(es6 新增)引用类型(堆 heap)...

    Jensen 评论0 收藏0
  • JS求数组最大(最小)值汇总(持续更新

    摘要:如何使用,在一个类型的数组里,查找最大或最小数呢以下介绍五个方法。利用代码如下解释方法就是通过一个函数,针对一个累加器和数组中的每一个元素,将一个数组最终减少到一个值。如果求最小值,将改成。 如何使用JS,在一个Number类型的数组里,查找最大(或最小)数呢? 以下介绍五个方法。(如果有新方法,后续会更新,也欢迎各位留言提供新方法) 1. 不使用任何库函数 代码如下: functio...

    church 评论0 收藏0
  • 【程序员必备】知识点 持续更新

    TCP/IP HTTP和HTTPS有何区别? httpbin 一个简单的HTTP请求和响应服务。 TCP的三次握手与四次挥手 通俗易懂版,详细版本 MySQL CHAR和VARCHAR存取的差别 《高性能MySQL》笔记 - MySQL 锁的基本类型 MySQL中的锁之一:锁的必要性及分类 MySQL中的锁之二:行锁、页锁、表锁 MySQL Like与Regexp的区别 数据结构 数...

    hellowoody 评论0 收藏0
  • 【程序员必备】知识点 持续更新

    TCP/IP HTTP和HTTPS有何区别? httpbin 一个简单的HTTP请求和响应服务。 TCP的三次握手与四次挥手 通俗易懂版,详细版本 MySQL CHAR和VARCHAR存取的差别 《高性能MySQL》笔记 - MySQL 锁的基本类型 MySQL中的锁之一:锁的必要性及分类 MySQL中的锁之二:行锁、页锁、表锁 MySQL Like与Regexp的区别 数据结构 数...

    zhjx922 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<