打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JavaScript数组 - 冒泡排序


  冒泡排序 

这节我们来讲大名鼎鼎的冒泡排序

原理:前后两个数两两进行比较,如果符合交换条件,交换位置,知道所有数据排序完成,结束比较。

举个小例子:

我们来给9,8,7,6,5,4,排序为4,5,6,7,8,9

var arr = [9,8,7,6,5,4]

排序比较的过程:

第一轮:

接着进行第二轮的排序比较:

(9在最大位置上,所以在接下来的几轮里不跟着参与)

再进行第三轮的排序比较

(这一轮的8在最大位置,以后也不再参与)

以此类推

经过上面的每一轮比较,我们发现每一轮都取到一个最大的数放在最后

拿我们的第一轮9为例,因为我们比较的方式是两两进行比较的,所以这个9就像一个泡泡一样一层一层往上冒。所以我们把上面的过程称为冒泡排序

上面我们执行了5轮,这只是我们的分析过程,真正的执行过程还要通过循环

分析:

1.先定义一个外层循环i为总共循环了几轮;i < arr.length

2.再定义每一轮比较的次数j,j是总的元素个数 – 当前的元素,第一轮是6-1,第二轮6-2…等等,由于i是从0开始,所以我们要再减1;j < arr.length – i - 1

3.判断前后两个数是否复合交换条件;arr[i] > arr[j + 1]

4.如果符合条件就交换位置;tmp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = tmp;

var arr = [9,8,7,6,5,4];for(var i = 0; i < arr.length; i++){//比较的轮次//每一轮比较的次数    for(var j = 0; j < arr.length - i - 1; j++){ //判断前后两个数是否复合交换条换        if(arr[j] > arr[j + 1]){ var tmp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = tmp; }     }}alert(arr);

运行结果如下

这里主要i和j主要难理解,需要花点时间自己去理解

必须要知道i和j的作用到底是干什么的

i=0时,j<5第一轮是0 1 ,1 2 ,2 3 ,3 4等等…

i=1时,j<4第二轮是0 1 ,1 2 ,2 3 等等…

以此类类推……

这是从小到大进行排列,如果从大到小排列将数组的大于号改为小于号即可

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java|实现冒泡排序
php四种基础算法:冒泡,选择,插入和快速排序法
PHP四种排序方式和二分查找
PHP实现四种基本排序算法
Php,基本算法
十大经典排序算法(动态演示 代码)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服