这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单。
也就是js中的冒泡排序
冒泡排序 时间复杂度为O(n^2),有两个优点:
1.“编程复杂度”很低,很容易写出代码;
2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。
实现基本思路:冒泡排序是经过n-1趟子排序完成的,第i趟子排序从第1个数至第n-i个数,若第i个数比后一个数大(则升序,小则降序)则交换两数。
下面自己实现代码:
<script type="text/javascript"> function maopao(arra){ var temp; for( i=0;i<arra.length;i++){ //比较多少趟,从第一趟开始 j;jarra.length-i1每一趟比较多少次数 if(arra[j]>arra[j+]){ temparra[j]; arra[j]]; arra[j]temp; } } }; return arra; } arrry[85,246317318650]; smaopao(arrry); console.log(s); </script>
打印结果:[17,17,24,31,50,63,85,86]。
话题扯远了,在网上看了一小段视频,虽然说代码不是很精简,但是也是一种思路,如下:
function max(a,b){ return a>b?a:b; } console.log(max(2,3));//3 var func = max; console.log(func(5,7));7 max1(){ var maxValue = arguments[0]; for(var i=1; i<arguments.length; i++){ maxValue = max(maxValue,arguments[i]); } return maxValue; } console.log(max1(1,2,100,300,-8,-20,150));300
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。