JavaScript冒泡排序详解

什么是冒泡排序呢?

就是将数组的前一项元素与后一项元素进行比较,将大的一项往后移动一位,通过循环比较相邻的两位大小,不断将大的后移,实现数组元素的大小排序。

JS代码如下:


代码详解:

当 i=0  ,  j=0, arr[j]=4 ,arr[j+1]=1 , 此时 arr[j]>arr[j+1],大的往后移,arr=[1,4,7,2]; j=1,   arr[j]=4 ,arr[j+1]=7 ,  此时 arr[j]<arr[j+1],数组不变arr=[1,4,7,2], 继续执行j++, j=2, arr[j]=7 ,arr[j+1]=2,此时 arr[j]>arr[j+1], 大的往后移,arr=[1,4,2,7];j=3,由于j<len-i,即j<3,结束此次循环,执行i++

当 i=1,j<len-i,即j<2,      j=0时,arr=[1,4,2,7],  j=1,arr[j]=4 ,arr[j+1]=2,此时 arr[j]>arr[j+1], 大的往后移,arr=[1,2,4,7],      j=2,跳出,执行i++

当i=2时,j<len-i,即j<1, j=0时,arr=[1,2,4,7],j++,结束循环,然后跳出

从上面可以看出,我们只循环了3轮,没轮就只比较数组长度arr.length-1次,然后在第一轮比较时,就比较出了最大值,所以最后一个就不比较,所以j<len-i, 循环比较几轮的i=length-1,所以开始就设置了var len=arr.length-1;




©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 排序算法可能是你学编程第一个学习的算法,还记得冒泡吗? 当然,排序和查找两类算法是面试的热门选项。如果你是一...
    无脚鸟30阅读 4,544评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,158评论 0 2
  • /* (无序区,有序区)。从无序区通过交换找出最大元素放到有序区前端。 选择排序思路: 1. 比较相邻的元素。如果...
    刘帆_d384阅读 3,421评论 0 0
  • 有一天 有一天我肯定会离开 离开这里 离开所有熟悉的人和事 我会到一个远离喧闹的地方 那里有蓝天白云 有月亮星星 ...
    如兰品书阅读 1,148评论 0 0
  • 云 飘渺之物 层叠之上 偶辉映成霞 偶雨后为束 偶晴空几缕 棠 等待之物 盛放于一木间 依木而花开花落 积年累月 ...
    云棠tyan阅读 1,576评论 0 0

友情链接更多精彩内容