zoukankan      html  css  js  c++  java
  • JavaScript冒泡排序

    数组排列

    冒泡排序:冒泡排序是一种算法,可以把一系列的数据按照一定的顺序进行排列显示(从小到大或是从大到小)

    算法:观察执行过程,从而找到其中的规律,并将其转换成代码。

    例如:可以将数组中的 [5,4,3,2,1] 中的元素按照从小到大的顺序排列,输出 1,2,3,4,5

    冒泡排序  是一种简单的算法。它重复地走访过要排序的数列,一次比较两个元素。如果他们的顺序错误把他们交换过来

    走访数列的工作是重复地进行到直到没有再需要交换,也就是该算法已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢浮

    到数列的顶端。

    例如:可以将数组中的 [5,4,3,2,1] 中的元素按照从小到大的顺序排列,输出 [1,2,3,4,5]

    第一轮  [4,3,2,1,5]

    5和4进行比较,错误,5到4后面;4,5,3,2,1

    5和3进行比较,错误,5到3后面;4,3,5,2,1

    5和2进行比较,错误,5到2后面;4,3,2,5,1

    5和1进行比较,错误,5到1后面;4,3,2,1,5

    第二轮 [3,2,1,4,5]

    4和3进行比较,错误,4到3后面;3,4,2,1,5

    4和2进行比较,错误,4到2后面;3,2,4,1,5

    4和1进行比较,错误,4到1后面;3,2,1,4,5

    第三轮 [2,1,3,4,5]

    3和2进行比较,错误,3到2后面;2,3,1,4,5

    3和1进行比较,错误,3到1后面;2,1,3,4,5

    第四轮 [1,2,3,4,5]

    2和1进行比较,错误,2到1后面;1,2,3,4,5

    5 经过一轮一轮交换,慢慢浮到后面去,就像泡泡一样慢慢浮到上面去。

     

    案例分析

    实例一:


    5  ,4 ,3 ,2 ,1

    1、一共需要的趟数,使用外层 for循环

      5个数一共要走4趟

      总长度 即为数组长度减去 1(arr.length - 1)

    2、每一趟交换次数,使用内层 for循环

      第1 趟交换 4次

      第2 趟交换 3次

      第3 趟交换 2次

      第4 趟交换 1次

      由于次数是由 0次开始的,所以长度为  arr.length - i -1

    3、交换两个变量

    var arr=[5,4,3,2,1]
    for(var i=1;i<arr.length;i++){
    // console.log(i)
        for(var j=0;j<arr.length-i;j++){
    //     前一个和后一个元素相比较,如果前面的元素大于后面的元素就交换两个变量
        if(arr[j] > arr[j+1]){
        var k=arr[j];
        aa[j]=arr[j+1];
        arr[j+1]=k;
            }
        }
    }
    console.log(arr);

     

    实例二:


    乱序排列的数组,降序排列顺序

    实现思路:如果前面的数小于后面的数,那么就将后面的数和前面的数,二者的值相互调换

    与上面的思路大致相同,只需要将 > 变成 < 即可。

    var arr=[4,2,5,1,3];
    for(var i=0;i<arr.length;i++){
        for(var j=0;j<arr.length - i;j++){
            if(arr[j]<arr[j+1]){
                var k = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = k;
            }
        }
    }console.log(arr);

  • 相关阅读:
    Tomcat
    DOM/SAX/PULL解析XML
    Android网络编程 知识框架
    Chapter 10 Networking/JSON Services
    Chapter 10 Networking/Web Service Using HTTP
    Android-Universal-Image-Loader
    8.Media and Camera/Media Camera
    PAT乙级1007.素数对猜想(20)
    筛法求素数详解
    PAT乙级1006.换个格式输出整数(15)
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11974416.html
Copyright © 2011-2022 走看看