冒泡流程写法  (小的往左冒)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>hello world</title>
</head>
<body>
<script>
let arr=[8,7,9,1,3];
let temp;
for(let i=0; i<arr.length-1; i++){
console.warn(`\n-------第${i+1}趟:目的是取出数组中第${i+1}个最小的数------`)
for (let j=i+1; j<arr.length; j++) {
let result=arr[i]>arr[j];
console.log(`第${j-i}次比较:拿数组第1个元素${arr[i]}比较数组第${j}个元素${arr[j]},结果${result?'是大于!':'本身就是是小于!'}${result?'把小的数'+arr[j]+'置前':'暂且暂且不动'}`)
if(result){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
console.log(arr)
}
console.log(`说明:经过第${i+1}趟比较,已经选出了第${i+1}小的数,是${arr[i]}`)
}
console.log('最后一个不用循环了,肯定是最大的了')
</script>
</body>
</html>

还有另一种冒泡排序(大的往右冒)

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>hello world</title>
</head>
<body>
<script>
function sortAry(ary){
for(let i=0;i<ary.length-1;i++){
console.warn(`--第${i+1}趟:目的是取出数组中第${i+1}个最大的数--`)
for(let j=0;j<ary.length-1-i;j++){
let result=ary[j]>ary[j+1]
console.log(`第${j+1}次比较:拿数组第${j}个元素(${ary[j]})与${j+1}个元素(${ary[j+1]})做比较,${result?'是大于,调换两者位置':'保持不动'}`); if(result){
let temp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
console.log(ary)
}
console.log(`说明:经过第${i+1}趟比较,已经选出了第${i+1}大的数,是${ary[ary.length-1-i]}`)
}
console.log('最后一个不用循环了,肯定是最小的了') }
let arr=[8,7,9,1,3];
sortAry(arr)
</script>
</body>
</html>

var a=[6,2,4,1,5,9],t;
for(var i=0;i<a.length;i++){
for(var j=0;j<a.length-1;j++){
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
console.log(a)

这两种都是冒泡啦

当然,如果是数组排序的话,还有js内置的sort方法

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>hello world</title>
</head>
<body>
<script type="text/javascript">
function sortNumber1(a, b){return a - b}
function sortNumber2(a, b){return b - a} var arr = [10,5,40,25,100,1];
document.write(arr.sort()+'<br/>')//默认
document.write(arr.sort(sortNumber1)+'<br/>')//从小到大
document.write(arr.sort(sortNumber2))//从大到小
</script>
</body>
</html>

出自w3c

js--冒泡排序[由小到大]的更多相关文章

  1. js 冒泡排序与快速排序

    刚好今晚看了js的冒泡排序跟快速排序,趁着还没忘记先记下来. 1. 冒泡排序:遍历数组,每个元素都与后一个元素比较,如果大于下一个元素,则两个元素位置调换.否则的话当前元素再与下下个元素比较,一直到 ...

  2. js冒泡排序

    今天面试了家公司,最后要写个js的简单数组排序,很久都写不出来,好尴尬,随着语言的发展,这些简单方法越来越不被重视了... <html> <head> <script t ...

  3. JS冒泡排序(数组)

    冒泡排序是把数组相邻的两个值进行比较,然后根据条件执行相应的命令 var arr = [0,4,8,5,2,7,1,3,6,9]; for(var s = 0;s<arr.length;s++) ...

  4. js冒泡排序与二分法查找

    冒泡排序 var attr=[1,5,7,6,3,9,2,8,4]; var zj=0; //控制比较轮数 for(var i=0;i<attr.length-1;i++) { //控制每轮的比 ...

  5. js冒泡排序和二分查找

    冒泡排序: var arr=[5,0,-56,900,12,9000,-123,-1000]; var flag=false; for(var i=0;i<arr.length-1;i++){ ...

  6. js冒泡排序及计算其运行时间

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. JS 冒泡排序从学到优化

    目的:理解算法 深化算法 冒泡排序: 直接上动图好于文字 一个冒泡实例 45,67,23,88,21,6,99// 第一轮 6次// 45 67 23 88 21 6 99// 45 23 67 88 ...

  8. js冒泡排序,数组去重

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. js 冒泡排序、快速排序、去重、查找字符串最多值(面试常有)

    冒泡排序 var bubbleSort = function(arr) { for (var i = 0; i < arr.length-1; i++) { for (var j = i+1; ...

  10. JS冒泡排序的6种写法(武当雄风)

    天下英雄出我辈,一入江湖岁月催.鸿图霸业谈笑间,不胜人生一场醉. 武当山上,一年一度的试道大会又开始了... 众武当弟子摩拳擦掌都想在此次试道大会上一展风采... 张三丰临终前曾留下一句话:试道大会采 ...

随机推荐

  1. 集中式(CVS、SVN)VS分布式(Git)

    集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器.中央服务器就好比是一个图 ...

  2. [HMLY]12.iOS中的Protocol

    最近工作中遇到一个比较迷惑的事情,在我利用runtime获取类的属性的时候,由于类实现了一个自定义协议,导致遍历出来的属性中包含了NSObject协议中的property.查来查去,只是知道和prot ...

  3. Docker环境下如何安装Zookeeper

    第一步:首先下载Zookeeper的镜像文件: 从仓库中pull 这个zookeeper镜像:docker pull jplock/zookeeper:3.4.8 然后docker images查看该 ...

  4. ES 6 : 函数的扩展

    1. 函数参数的默认值 [ 基本用法 ] 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法. 上面的代码检查函数log的参数y有没有赋值,如果没有,则指定默认值为world.这种写法的 ...

  5. D3.js:Update、Enter、Exit

    Update.Enter.Exit 是 D3 中三个非常重要的概念,它处理的是当选择集和数据的数量关系不确定的情况. 如果数组为 [3, 6, 9, 12, 15],将此数组绑定到三个 p 元素的选择 ...

  6. SDN理解:云数据中心底层网络架构

    目录 - 目录 - 云数据中心流量类型 - NSX整体网络结构 - 管理网络(API网络) - 租户网络 - 外联网络 - 存储网络 - openstack整体网络结构 - 管理网络:(上图中蓝线) ...

  7. MyEclipse 中文注释乱码

    window-->preference-->general-->content type然后在<Content Types>中展开每一个子项,并在<Default ...

  8. css1

    背景属性:background;background-color;background-image;background-repeat;(背景是否重复,有repeat-x 横式重复,repeat-y竖 ...

  9. ubuntu16.04 禁用Guest用户

    .打开终端(快捷键 Ctrl+Alt+T) .编辑50-no-guest.conf文件,按照以下命令编辑, sudo gedit /usr/share/lightdm/lightdm.conf.d/- ...

  10. Python学习笔记——基础篇【第六周】——hashlib模块

    常用模块之hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import ...