• 用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/>');
                                }
                            }
                        }
                    }

  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/LisaY/p/4881140.html
Copyright © 2020-2023  润新知