冒泡排序

 1 var examplearr=[8,84,25,88,24,75,21,9];
 2 function sortarr(arr){
 3     for(i=0;i<arr.length-1;i++){
 4         for(j=0;j<arr.length-1-i;j++){
 5             if(arr[j]>arr[j+1]){
 6                 var temp=arr[j];
 7                 arr[j]=arr[j+1];
 8                 arr[j+1]=temp;
 9             }
10         }
11     }
12     return arr;
13 }
14 sortarr(examplearr);
15 console.log(examplearr);
依次比较相邻的两个值,如果后面的比前面的小,则将小的元素排到前面。
依照这个规则进行多次并且递减的迭代,直到顺序正确.

详解:

该数组中只有8个数字(arr.length),所以至少需要进行7遍(arr.length-1)排序。

第一遍排序需要进行7次比较(arr.length-1-i 注:此时i=0)。

第一遍比较完成后数组最末尾的值就为最大值了,所以第二遍就不再需要跟最末尾的数字比较了。

因此第二遍只需要进行6次比较(arr.length-1-i 注:此时i=1)。

第二遍比较完成后,数组中倒数第二个数就是数组中所有数中的第二大的数字了,所以第三遍就不需要跟倒数第二个数比较了。

所以第三遍只需要进行5次比较(arr.length-1-i 注:此时i=2)。

以此类推,就可以得到由小到大的数组。

 

转载于:https://www.cnblogs.com/iStu/p/8489257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值