举例说明javascript冒泡排序

 更新时间:2021年11月19日 11:56:06   作者:kalrry  
这篇文章主要为大家介绍了javascript冒泡排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一、什么是冒泡排序

冒泡排序Bubble Sort,通过依次来比较相邻两个元素的大小,在每一次的比较的过程中,两个元素,通过交换来达到有序的目的。

如果一组无序的数列想要从小到大排序,那么两个元素比较,通过交换来实现,左边的元素要比右边的元素要小。

如果一组无序的数列想要从大到小排序,那么两个元素比较,通过交换来实现,左边的元素要比右边的元素要大。

就像碳酸饮料中的气泡一样,从底部一直冒泡到顶部。

二、举个例子

假如有 2,4,7,5,3,6,1 这组数

第一轮:

i=0;

j(内层循环)循环 6次,内层循环做的工作:相邻两个数比较,大的最终会放在后面,小的在前,一次循环外层循环控制次数,内层循环做判断

j=0 1 2 3 4 5

2 2 2 2 2 2 2
4 4 4 4 4 4 4
7 7 7 5 5 5 5
5 5 5 7 3 3 3
3 3 3 3 7 6 6
6 6 6 6 6 7 1
1 1 1 1 1 1 7
arr[0] arr[1] arr[2]
arr[1] arr[2] arr[3]

第二轮:

i=1;

j(内层循环)循环 5次

j=0 1 2 3 4 5

2 2 2 2 2 2
4 4 4 4 4 4
5 5 5 3 3 3
3 3 3 5 5 5
6 6 6 6 6 1
1 1 1 1 1 6
7 7 7 7 7 7
arr[0] arr[1] arr[2]
arr[1] arr[2] arr[3]

第三轮:

i=2;

j(内层循环)循环 4次

2 2 2 2 2
4 4 3 3 3
3 3 4 4 4
5 5 5 5 1
1 1 1 1 5
6 6 6 6 6
7 7 7 7 7

第四轮:

i=3;

j(内层循环)循环 3次

2 2 2 2
3 3 3 3
4 4 4 1
1 1 1 4
5 5 5 5
6 6 6 6
7 7 7 7

第五轮:

i=4;

2 2 2
3 3 1
1 1 3
4 4 4
5 5 5
6 6 6
7 7 7

第六轮:

i=5;

2 1
1 2
3 3
4 4
5 5
6 6
7 7
*/

<script type="text/javascript" >
// 示例1:
function show(){
	var arr=[2,4,7,5,3,6,1];
	for(var i=0;i<arr.length-1;i++){
		for(var j=0;j<arr.length-1-i;j++){
			//1、比较相邻的两个数;大的在后,小的在前
			if(arr[j] > arr[j+1] ){
				var temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	console.log(arr);
}

// 示例2:
	<body>
	    <input type="text" id="test">
	    <button type="button" onclick="show()">按我</button>
	    <input type="text" id="sc">
	</body>

    function show() {
        let oT=document.getElementById("test").value;
        let sc=document.getElementById("sc");
        // console.log(sc);
        // console.log(oT);
        let arr=oT.split("");
        console.log(arr.length);
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
                //1、比较相邻的两个数;大的在后,小的在前
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        // console.log(arr);
        sc.value=arr;
    }
</script>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • JavaScript通过元素索引号删除数组中对应元素的方法

    JavaScript通过元素索引号删除数组中对应元素的方法

    这篇文章主要介绍了JavaScript通过元素索引号删除数组中对应元素的方法,涉及javascript操作数组的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • JS实现网络请求的三种方式梳理

    JS实现网络请求的三种方式梳理

    本文主要为大家介绍了基于 XMLHttpRequest、Promise、async/await 等三种异步网络请求的写法,文中的示例代码讲解详细,感兴趣的可以学习一下
    2022-03-03
  • 基于JavaScript编写一个翻卡游戏

    基于JavaScript编写一个翻卡游戏

    这篇文章主要为大家详细介绍了如何溧阳JavaScript编写一个简单的翻卡游戏,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2023-02-02
  • 微信小程序movable-view的可移动范围示例详解

    微信小程序movable-view的可移动范围示例详解

    这篇文章主要介绍了微信小程序movable-view的可移动范围 ,movable-view不管怎么移动都要完全包含住movable-area,也就是说movable-area不能超出movable-view的区域范围,反之亦然,本文通过示例介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • JavaScript实现绘制两个坐标之间的连线

    JavaScript实现绘制两个坐标之间的连线

    本文主要介绍了JavaScript实现绘制两个坐标之间的连线功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Display SQL Server Login Mode

    Display SQL Server Login Mode

    Display SQL Server Login Mode...
    2007-06-06
  • 其实你可以少写点if else与switch(推荐)

    其实你可以少写点if else与switch(推荐)

    switch case与if else的区别:switch case会生成一个跳转表来指示实际的case分支的地址,而if...else却需要遍历条件分支直到命中条件,下面这篇文章主要给大家介绍了关于if else与switch在使用中的一些技巧,需要的朋友可以参考下
    2019-01-01
  • 原生JavaScript中直接触发事件的方式小结

    原生JavaScript中直接触发事件的方式小结

    JavaScript提供了多种方式来直接触发事件,无论是在用户交互、程序逻辑处理或是数据更新时,本文将全面探讨原生JavaScript中各种事件触发方式,并通过深入的技术案例分析,需要的朋友可以参考下
    2025-01-01
  • javascript 广告后加载,加载完页面再加载广告

    javascript 广告后加载,加载完页面再加载广告

    网页打开的顺序都是按页面从上到下的顺序加载完成的,所以要想使广告不影响页面打开速度,就要等页面全部打开完成后,再加载JS代码。
    2010-11-11
  • JS控制按钮10秒钟后可用的方法

    JS控制按钮10秒钟后可用的方法

    这篇文章主要介绍了JS控制按钮10秒钟后可用的方法,涉及JavaScript基于时间函数控制页面元素样式动态变换的技巧,需要的朋友可以参考下
    2015-12-12

最新评论