JS 算法与数据结构——排序算法(上)
请写一个 min 函数,要求 min(numbers) 能返回数组 numbers 中的最小数字。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | let min = (numbers)=>{ console.log(numbers) if (numbers.length>2){ return min( [numbers[0],min(numbers.slice(1))] ) } else { return Math.min.apply( null ,numbers) } } let num = min([1,2,3,4]) console.log(num) //递归思路理解运行min([1,2,3,4]) 1 min([1,min([2,3,4])) #1层 2 min([1,min([2,min([3,4])])) #2层 3 min([1,min([2,3--reutrn Math.min.apply( null ,[3,4])])触发 else return 3 4 min([1,2--reutrn Math.min.apply( null ,[2,3]))触发 else #2层 return 2 5 reutrn Math.min.apply( null ,[1,2])触发 else #1层 return 1 |
请写出一个 sort 函数,要求 sort(numbers) 能返回一个把 numbers 从小到大排列的数组(你可以添加多余的帮助函数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | let num = [4,2,1,3] let minNum = (numbers)=>{ if (numbers.length>2){ return minNum( [numbers[0],minNum(numbers.slice(1))] ) } else { return Math.min.apply( null ,numbers) } } let minIndex = (numbers)=>{ return numbers.indexOf(minNum(numbers)); } let sort = (numbers) => { if (numbers.length > 2){ let index = minIndex(numbers) let min = numbers[index] numbers.splice(index, 1) console.log( 'min--' +min, 'numbers--' +numbers) // console.log('minCon--',[min].concat(sort(numbers))) return [min].concat(sort(numbers)) } else { return numbers[0]<numbers[1] ? numbers : numbers.reverse() } } <br> //递归思路理解 sort([4,2,1,3]) #1层 1 sort([1]+sort([4,2,3])) #2层 2 sort([1]+sort([2]+sort([4,3]))) #3层 3 sort([1]+sort([2]+sort([4,3])→[3,4])) #3层 进入 else , return numbers.reverse()) 4 sort([1]+sort([2]+[3,4])) #2层 5 sort([1]+[2,3,4])) #1层 5 return [1,2,3,4] |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话