javascript 冒泡排序

<script>
    var arr = [3, 1, 4, 6, 5, 7, 2];

    function bubbleSort(arr) {
        var len = arr.length;
        for (var i = len; i >= 2; --i) {
            for (var j = 0; j < i - 1; j++) {
                if (arr[j + 1] < arr[j]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    function bubbleSort2(arr) {
        var len = arr.length;
        for (var i = 0; i <= len - 1; i++) {
            for (var j = 0; j <= len - i; j++) {
                if (arr[j + 1] < arr[j]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }

    console.log(bubbleSort(arr));
    console.log(bubbleSort2(arr));
</script>
时间: 2025-01-04 20:00:04

javascript 冒泡排序的相关文章

javascript冒泡排序

数组冒泡排序算法(升序) 升序:小数在前,大数在后 冒泡排序的原则:每次比较相邻两个元素,如果前一个数>后一个数,说明违反升序的要求,就将两数交换位置.否则,保持不变.继续比较下一对. 例如:玩扑克牌时整理手中的排就是一种排序.就可以用冒泡排序模拟. 第1轮比较: 比较第1个和第2个元素:9 : 7,违反升序原则,交换,变为7:9 比较第2个和第3个元素:9:4,违反升序原则,交换,变为4:9 比较第3个和第4个元素:9:8,违反升序原则,交换,变为8:9 比较第4个和第5个元素:9:6,违反升

详解JavaScript冒泡排序

相信接触过编程语言的同学们都会对冒泡排序不陌生,今天我为大家分享一下冒泡排序的一些实现等等 注:冒泡排序为我个人理解如若有不同意见的同学欢迎讨论 首先介绍一下楼主的思路: 假如现在有以下一个数组 楼主的思路是:用第一个数去比对其他所有的数,假定从小到大进行排序,那么我使用第一个数也就是 下标为0的数字45去与其他数85,65等等比较 从小到大那么下标为0的元素应该是数组中的最小值 所以当我们进行比较的时候我们通过判断大于的方式如果大于那么就交换位置就是说假如 45>85那么使用第三个变量进行交换

JavaScript 冒泡排序和选择排序

var array = [1,2,3,4,5]; // ---> 服务 //效率 ---> 针对一个有序的数组 效率最高 //标志 true false for(var j = 0; j < array.length - 1;j++ ){ //- j 每次排序完成之后 后面减少比较的次数 var isTrue = true; //如果数组本身就是升序,则直接输出 for(var i = 0; i < array.length - j - 1;i++){ if(array[i] &g

浅析JavaScript事件流——冒泡

一.什么是事件冒泡流 我们知道事件流指的是从页面中接受事件的顺序. 为了形象理解事件冒泡,可以想象三军主将诸葛亮,在帐内运筹帷幄,眼观六路耳听八方,这时候前方的战事情况就需要靠传令兵来传达,当第一位传令兵接到士官战事信息,打出旗语,百米之外的第二个传令兵看到后打出同样的旗语,第三个,第四个....,直到信息传到诸葛亮手中.用专业术语解释就是:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这一过程被称为事件冒泡:这个事件从原始元素开始一直

几大排序思想(由javascript编写)

Hello!我是super喵二~~~今天练了几道面试题,突然觉得好久没有好好归纳 过排序算法了.以前都是用C/java编写排序,这次用js来总结下五大排序算法吧: 1.冒泡排序(常用及常考排序算法): 不用多说,冒泡就是一个一个浮上去~~~也就是说需要一个一个比较: <script type="text/javascript"> //冒泡排序,一次一次的相邻两个数比,直到把最大数找出来 var array = [5,2,4,6,8]; var temp; function

dom例子

//凡是html标签中的属性和值是一样的,那么在js中用true或者false 1,阅读协议倒计时 <input type="button" name="name" value="请仔细阅读协议(5)" disabled="disabled" id="btn" /> <script type="text/javascript"> window.onload = f

冒泡排序算法的JavaScript实现

作为经典的排序算法之一,冒泡排序在JavaScript中也有多种实现方式. 在一些最常见的实现中会声明临时变量,在另一些不必声明临时变量的实现中则可能只支持数值数组或字符串数组(二者之一). 下面介绍两种[无须声明临时变量],[对数值数组和字符串数组都适用]的实现方式. ES5版: var arr = [5, 25, 2, 53, 22, 10]; function bubbleSort(arr) { for (var j = 1, len = arr.length; j < len; j++)

javascript实现冒泡排序

关于算法的东西,本来不应该交给javascript来做,因为对算法和数据结构的理解,并不会因为用自己熟悉的语言实现常用数据结构和算法而得到多大的提升,不过这一过程终归是有一些好处的,对于一些非科班出身的人来讲. 首先解释一下冒泡排序的机制:遍历要排序的数列,比较相邻两个元素,如果他们的顺序和我们想要的不一致,就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.冒泡排序的做法有小数上浮 或者 大数下沉两种 ,这里只提及大数下沉的实现. 外层循环的作用是,提取

javascript学习5-练习之2冒泡排序算法

复习冒泡排序算法,同时自己也写了一个排序算法. 实现效果: 1.自己的算法思想: 数组中数据取第一个为默认最小,依次和后面每个数据比较,只要有比其小的就交换直至找出最小的. 然后将第二个数据与其后面所有数据比较,找出最小,依次重复 2.冒泡排序算法思想: 数据从最低端到最高端为 a[n] ......a[0] 第一轮:将a[0]与a[1]比较,高者上,然后依次比较a[1]和a[2]....a[n-1]和a[n]每次将大的往上冒 第二轮: 将a[0]与a[1]比较,高者上,然后依次比较a[1]和a