zoukankan      html  css  js  c++  java
  • 用js实现冒泡排序和求水仙花数

    #js中冒泡排序和求水仙花数  
    <hr>    
    ##冒泡排序##
    用冒泡排序Bubble Sort来排数字大小,和换墨水瓶是一个道理
    >有三个墨水瓶,a瓶装红墨水,b瓶装蓝瓶墨水,c空墨水瓶;  
    >要将a瓶里装蓝墨水,b瓶里装红墨水,就得先将a瓶中的红墨水倒入c瓶,再将b瓶中的蓝墨水倒入a瓶中,最后讲红墨水倒入b瓶中就大功告成啦!  

    所以呢,冒泡排序一种简单的排序算法,就是它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

    ### 算法原理 ###
    冒泡排序算法的运作如下:(从后往前)  

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。  
      
      代码如下:(从小到大排)  

            function bubble(arr) {
                    var len = arr.length;
                    var temp = 0;
                    for(var i = 0;i < len; i++) { //循环次数为数组长度
                        for(var j = 0;j < len-1; j++ ){
                            if (arr[j] > arr[j + 1]) {  //比较一个数的值与后一个数的大小
                                temp = arr[j];          //换墨水原理  将小的数放在前面
                                arr[j] = arr[j + 1];
                                arr[j + 1] = temp;
                            }
                        }
                    }
                }
                var num = [10, 6, 5, 3, 2, 47, 0, 34];
                bubble(num);
                document.write(num + "<br/>");



    ##水仙花数##
    水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153);水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。  
    水仙花数又称阿姆斯特朗数。  
    代码如下:(1000以内的水仙花数)  

                 var a, b, c,i;

        for(a=1;a<10;a++){  //提取百位
                        for(b=0;b<10;b++){  //提取十位
                            for(c=0;c<10;c++) { //提取个位
                                var i = a*100+b*10+c;
                                if (i== a*a*a +b*b*b + c*c*c){
                                    document.write(i+'<br/>');
                                }
                            }
                        }
                    }

  • 相关阅读:
    CodeForces 1059B
    CodeForces 714A
    浅析母函数
    CodeForces 816C 思维
    CodeForces 816B 前缀和
    CodeForces
    Java项目读取resources资源文件路径那点事
    原型模式
    一次给女朋友转账引发我对分布式事务的思考
    连续最大字段和问题
  • 原文地址:https://www.cnblogs.com/LisaY/p/4881140.html
Copyright © 2011-2022 走看看