【小5聊】简单的算法进行升降序排序(递归算法)

本文详细介绍了如何使用JavaScript实现冒泡排序的递归算法,从简单开始讲解,阐述了递归的基本概念和冒泡排序的工作原理。通过具体的代码示例,展示了如何定义和执行递归函数,最终实现数组从小到大的排序。在代码实现过程中,注意了防止无限循环的条件判断,确保递归的正确终止。

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

不管学习什么,都可以从简单开始,递归算法也算是比较简单的一类算法

冒泡算法:在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法

可以简单的理解:就是在一个方法自己调用自己,会存在无限循环的情况,需要对方法内的逻辑写法要求比较严谨,确保方法一定能递归完毕

本次代码使用的是javascript

1、假设一数组数据如下

var arr=[20,21,09,10,30,39,1,65,86,23];

2、使用递归算法,从小到大输出

3、实现逻辑

1)定义好方法

2)设定三个参数,数组本身、下标值i、小标值i+1

3)如果数组第一个值比第二个值小,则进行值交换,比如:arr[0]=20 小于 arr[1]=21

交换后,数组编程,arr=[21,20...]

4) 如果第一个和第二个下标都等于数组长度,那么停止递归

5)如果第一个下标大于等于数组长度且第二个下标小于数组长度,那么继续递归,第三个参数值+1,如此递归

6)如果第一个下标小于数组长度且第二个下标等于数组长度,那么代表当前值和所有数组值比对完毕,进行下一个值比对

var arr=[20,21,09,10,30,39,1,65,86,23];

var tempValue=0;
var length=arr.length-1;
function sort(arr,i,j){
    
    if(arr[i]<arr[j]){
        tempValue=arr[i];
        arr[i]=arr[j];
        arr[j]=tempValue;
    }
    
	if(i>=length&&j>=length){
        
        return; //结束递归,完成本次排序
    }
    else if(i<=length&&j<length){
        
        sort(arr,i,j+1)
    }
    else if(i<length&&j==length){
        
        sort(arr,i+1,0)
    }
    
}

sort(arr,0,1);

console.log(arr)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值