js常见排序算法与Jest性能测试

本文详细介绍了JavaScript中常见的排序算法,包括冒泡排序、选择排序、插入排序、快速排序和希尔排序,并通过Jest进行了性能测试。测试涵盖了不同长度的数组,展示了算法在大数据量下的性能表现。在大规模数据中,部分算法由于性能问题被省略测试,突出了快速排序和希尔排序的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法简介


冒泡排序

冒泡排序(有时称为下沉排序)是一种简单的排序算法,它反复遍历LIT以进行排序,如果排序顺序不对(升序或降序),则将它们组合起来,并交换它们。在不需要交换的情况下,对列表进行遍历直到不需要交换,这表明列表已被排序。
在这里插入图片描述

复杂度分析

Name Best Average Worst Memory Stable Comments
Bubble sort n 1 Yes

JavaScript实现:

function bubbleSort(array) {
   
    for (let i = 0; i < array.length; i++) {
   
        for (let j = 1; j < array.length - i; j++) {
   
            if (array[j - 1] > array[j]) {
   
                [array[j - 1], array[j]] = [array[j], array[j - 1]];
            }
        }
    }
    return array
}

选择排序

选择排序是一种排序算法,具体而言是一种就地比较排序.T具有o(N2)时间复杂度,使得它在大列表上效率低下,通常比类似的插入排序性能差。SselectionSort因其简单性而闻名,它在某些情况下比复杂的算法具有性能优势,特别是在辅助内存有限的情况下。
在这里插入图片描述

复杂度分析

Name Best Average Worst Memory Stable
Selection sort 1 No

JavaScript实现:

function selectSort(array) {
   
    for (let i = 0; i < array.length; i++) {
   
        let k = i
        for (let j = i + 1; j < array.length; j++) {
   
            if (array[j] < array[k]) {
   
                k = j
            }
        }
        [array[i], array[k]] = [array[k]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值