javascript中的冒泡排序
冒泡排序:就是将一个数组中的元素按照从大到小或者从小到大的顺序进行排列。
var array=[9,8,7,6,5,4,3,2,1];
第一轮比较:8,7,6,5,4,3,2,1,9 交换了8次 i=0 j=array.length-1-i
第二轮比较:7,6,5,4,3,2,1,8,9 交换了7次 i=1 j=array.length-1-i
第三轮比较:6,5,4,3,2,1,7,8,9 交换了6次 i=2 j=array.length-1-i
第四轮比较:5,4,3,2,1,6,7,8,9 交换了5次 i=3 j=array.length-1-i
第五轮比较:4,3,2,1,5,6,7,8,9 交换了4次 i=4 j=array.length-1-i
第六轮比较:3,2,1,4,5,6,7,8,9 交换了3次 i=5 j=array.length-1-i
第七轮比较:2,1,3,4,5,6,7,8,9 交换了2次 i=6 j=array.length-1-i
第八轮比较:1,2,3,4,5,6,7,8,9 交换了1次 i=7 j=array.length-1-i
代码实现:
var temp; var array=[9,8,7,6,5,4,3,2,1]; //外循环控制轮数 for(var i=0;i<array.length-1;i++){ //内循环控制比较次数 for(var j=0;j<array.length-1-i;j++){ if(array[j]>array[j+1]){ //交换两个变量 temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } }
console.log(array);
代码优化:
var temp,bool,m=0; var array=[9,8,7,6,5,4,3,2,1]; for(var i=0;i<array.length-1;i++){ //开闭原则中的开关 bool = true; for(var j=0;j<array.length-1-i;j++){ if(array[j]>array[j+1]){ //交换两个变量 temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; bool=false;//将开关关闭 } } //如果内循环中的if没有被执行(开关关闭,执行下面的语句); if(bool){ break; } m++; } console.log(array+",比较"+m+"轮");
备注:比较轮数最好情况为0轮,最坏为8轮
分类:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用