• 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[2]...a[n-2]和a[n-1]每次大的往上冒,注意此时第一轮最大的已经排出来,故不需要将[n-1]与[n]相比较

    ...

    第n轮:将a[0]与a[1]比较高者往上冒。然后 a[1]与a[2]比较,大的往上冒。

            此处前面已经排出来了n-1个最大的,一共n+1个数,故此时只有a[0]和a[1]两个没有比出最大的了。到第n轮,数据比较完成。

    具体代码如下

    1.我自己的算法代码

     1 //自己的排序算法
     2 var s=[1,2,3,5,77,22,11,14,12,24];
     3 //排序前
     4 document.write("<br/>自己的排序,排序前:<br/>"+s);
     5 for (var i=0;i<s.length-1 ;i++ )
     6 {
     7     for (var j=i+1;j<s.length;j++ )
     8     {
     9         if(s[i]>s[j])
    10         {
    11             var temp=s[j];
    12             s[j]=s[i];
    13             s[i]=temp;
    14         }
    15     }
    16 }
    17 //排序后
    18 document.write("<br/>自己的排序算法,排序后:<br/>"+s);

    2.冒泡排序算法:

     1 //正确的冒泡排序算法
     2 var flag=false;
     3 document.write("<br/>冒泡排序,排序前:<br/>"+s);
     4 for (var i=0;i<s.length-1 ;i++ )
     5 {
     6     for (var j=0;j<s.length-1-i ;j++ )
     7     {
     8         if(s[j]>s[j+1])
     9         {
    10             var temp=s[j];
    11             s[j]=s[j+1];
    12             s[j+1]=temp;
    13             flag=true;
    14         }
    15     }
    16     if(flag)
    17     {
    18         flag=false;
    19     }
    20     else
    21     {
    22         break;//代表一次也没有交换,那么数据完全是顺序的,不需要再执行for循环
    23     }
    24 }
    25 document.write("<br/>冒泡排序,排序后:<br/>"+s);
  • 相关阅读:
    __getattribute__()、__getattr__()、__setattr__()、__delattr__()
    Python: Catch multiple exceptions in one line (except block)
    Python中的__new__和__init__
    使用sphinx生成Python文档
    Windows下干活儿辅助软件
    Python的Descriptor和Property混用
    Solved: Qt Library LNK 2001 staticMetaObject error
    OS sysbench压力测试
    Oracle 数据库 sysbench 压力测试
    MySQL 数据库 Sysbench压力测试
  • 原文地址:https://www.cnblogs.com/luckyflower/p/3699991.html
Copyright © 2020-2023  润新知