数组--冒泡排序

相邻两个元素进行比较,将一个数组中的数字使用循环进行升序或降序的排列 var arr = [3,2,1]; // ---> [1,2,3] // 相邻的元素比较,就是下标i的元素跟下标i+1的元素比较 - 所以循环要比正常的遍历少一次 for(var i=0;i<arr.length-1;i++){ // 如果前面的元素比后面的元素大 if(arr[i]>arr[i+1]){ // 则交换位置 var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } // 这个循环结束后,arr变为:[2,1,3] // 所以需要继续排列 for(var i=0;i<arr.length-1;i++){ // 如果前面的元素比后面的元素大 if(arr[i]>arr[i+1]){ // 则交换位置 var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } // 这个循环结束后,arr变为:[1,2,3] // 两个循环代码是重复的,所以用循环处理。3个元素循环两次,4个元素循环3次,所以循环重复的次数也是数组长度-1 for(var j=0;j<arr.length-1;j++){ for(var i=0;i<arr.length;i++){ if(arr[i]>arr[i+1]){ var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } } // 如果要降序排序,就将判断条件中的>改为<即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了