這其實是一個很簡單的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(var i=0;i<arra.length;i++){ //比較多少趟,從第一趟開始 for(var j=0;j<arra.length-i-1;j++){ //每一趟比較多少次數 if(arra[j]>arra[j+1]){ temp=arra[j]; arra[j]=arra[j+1]; arra[j+1]=temp; } } }; return arra; } var arrry=[85,24,63,17,31,17,86,50]; var s=maopao(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 function 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
