费氏级数 二分查找 冒泡 排序 js版

本文通过具体实例详细介绍了几种常见的算法实现,包括递归求解斐波那契数列、二分查找、冒泡排序及选择排序等,为读者提供了一个从理论到实践的学习路径。
console.log("=".repeat(30));
console.log("打印费氏级数:");

function printFibonacci(n){
    if(n==0){
        return 0;
    }else if(n==1){
        return 1;
    }else if(n>=2){
        return n+printFibonacci(n-1);
    }else{
        return "传入的参数有误,请检查";
    }

}

console.log(printFibonacci(0));
console.log(printFibonacci(1));
console.log(printFibonacci(2));
console.log(printFibonacci(3));
console.log(printFibonacci(4));
console.log(printFibonacci(5));

//----------------------------------------------------

console.log("=".repeat(30));
console.log("二分查找:");

//有序数组
function binarySearch(arr,item){
    let arrLength=arr.length;
    let start=0,end=arrLength;
    while(start<end){
        let tmpLength=parseInt((end+start)/2);
        if(item<arr[tmpLength]){
            end=tmpLength;
        }else if(item>arr[tmpLength]){
            start=tmpLength;
        }else if(item==arr[tmpLength]){
            return tmpLength;
        }
    }

    return -1;
}

let ary1=[4,6,8,10,12,14,16];
console.log(binarySearch(ary1,4));
console.log(binarySearch(ary1,6));
console.log(binarySearch(ary1,8));
console.log(binarySearch(ary1,10));
console.log(binarySearch(ary1,12));
console.log(binarySearch(ary1,14));
console.log(binarySearch(ary1,16));
console.log(binarySearch(ary1,1));

//----------------------------------------------------

console.log("=".repeat(30));
console.log("冒泡排序:");
function bubbleSort(arr){
    let arrLength=arr.length;
    for (let i = 0; i < arrLength; i++) {
        for (let j = 0; j < arrLength-i; j++) {
            if(arr[j]>arr[j+1]){
                let tmp=arr[j];
                arr[j]=arr[j+1];
                arr[j+1]=tmp;
            }
        }
    }
}

let bubbleAry1=[55,32,189,110,10,66];
let bubbleAry2=[90,57,32,223,88,66];
bubbleSort(bubbleAry1);
bubbleSort(bubbleAry2);
console.log("bubbleAry1="+bubbleAry1);
console.log("bubbleAry2="+bubbleAry2);

//----------------------------------------------------

console.log("=".repeat(30));
console.log("选择排序:");
function selectSort(arr){
    let arrLength=arr.length;
    for (let i = 0; i < arrLength; i++) {
        let maxIndex=0;
        for (let j = 0; j < arrLength-i; j++) {
            if(arr[maxIndex]<arr[j]){
                maxIndex=j;
            }
        }

        let tmp=arr[maxIndex];
        arr[maxIndex]=arr[arrLength-1-i];
        arr[arrLength-1-i]=tmp;
    }
}

let selectAry1=[6,3,9,12,17,5];
let selectAry2=[18,5,3,9,10,2,7];
selectSort(selectAry1);
selectSort(selectAry2);
console.log("selectAry1="+selectAry1);
console.log("selectAry2="+selectAry2);
下载前可以先看下教程 https://pan.quark.cn/s/a4b39357ea24 Job-Recommend 蚂蚁集团招聘内推(校招、社招) 校招 蚂蚁集团 2023届实习生招聘开始啦~ 蚂蚁集团是中国最大的移动支付平台【支付宝】的母公司,也是全球领先的金融科技开放平台,致力于以科技推动包括金融服务业在内的全球现代服务业的数字化升级。 我们团队归属于支付宝事业群商家开放技术部,整个大团队致力于打造蚂蚁级的开放、产品、商户等通用业务平台,实现全局业务能力与商家资源的开放共享,对内助力于商家、用户、机构等服务体系构建,对外以小程序、生活号等为抓手激活支付+X的金融生活开放生态。 我们团队是城市化策略技术部,依托于亿级的商家及用户数据,通过数据、算法、工程构建城市智能决策网络及策略体系。 我们有耐心逗比的师兄,有温柔细致的师姐,有丰富多彩的团队活动,也有各式各样的员工关怀,快来联系我们吧! ! ! 招聘对象: 11-2023.10毕业的应届毕业生 招聘流程: 简历投递->在线笔试及测评->面试->发放实习offer->实习入职 岗位类型: 【Java研发岗位】 岗位要求: 本科及以上学历,计算机、通信、数据科学与大数据技术等相关专业。 熟练掌握java技术,对多线程、数据结构等有清晰的认识。 掌握常用数据结构、算法、设计模式,熟悉MySQL/Oracle数据库等关系型数据库。 具备较强的编程能力、数据分析能力、问题排查能力,工作主动,学习能力强。 【数据工程/数据挖掘岗位】 岗位要求: 1、对分布式计算有较深的认识, 熟练使用spark,hadoop等处理海量用户行为数据。 2、熟练运用python、shell等脚本编程语言。 3、熟练掌握概率论与数理统计者优先。 4...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值