博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用js实现冒泡排序和求水仙花数
阅读量:6261 次
发布时间:2019-06-22

本文共 1177 字,大约阅读时间需要 3 分钟。

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

转载于:https://www.cnblogs.com/LisaY/p/4881140.html

你可能感兴趣的文章
IO流学习总结(下)---序列化 反序列化
查看>>
万物互联 | 无感停车解决方案探析
查看>>
用VR学习灾难逃生技巧,地震来了不再慌
查看>>
朱啸虎:区块链是伪风口的可能性大,任何创新都要经历死亡谷
查看>>
SQLAlchemy 1.3.1 发布,Python ORM 框架
查看>>
美国科学家训练AI,用路上车辆判断人们的政治立场
查看>>
全球约39亿人未接入互联网 中国互联网用户数达7.21亿
查看>>
美国移动运营商AT&T服务故障,导致大范围用户无法寻求紧急救助服
查看>>
Spring中基于AOP的@AspectJ
查看>>
AI+时尚的盛宴,FashionAI全球挑战赛进入复赛阶段
查看>>
mybatis系统学习(二)——使用基础mybatis代替原始jdbc
查看>>
Linux 网络编程之原始套接字
查看>>
【树莓派】Linux应用相关:自动删除n天前日志
查看>>
Azkaban Install and Schedule Job
查看>>
不仅是NRA球赛,手术也在VR直播了!
查看>>
android 空调遥控器——简单发送内容
查看>>
数字比较
查看>>
MS CRM 2011 Form与Web Resource在JScript中的相互调用
查看>>
Oracle下定时删除归档日志脚本
查看>>
thinkphp-删除delete函数
查看>>