每一次对比相邻两个数据的巨细,小的排在前面,若是前面的数据比后面的大就交流这两个数的位置,这个方式就是对照次数太多了,效率对照低。我只是传入了一个10位数的数组,若是是上万或者更大的数据,不知道您的电脑会不会蓝屏了,嘿嘿,你可以试试哦!
var Sort=function(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){/*若是前面的数据比后面的大就交流位置*/ var list=arr[i]; arr[i]=arr[j]; arr[j]=list; } } } return arr; } Sort([10,10,1,2,4,6,7,89,7,4]) //输出效果
这方式是我浏览阮一峰先生日志看到的,这种方式的效率会高许多,详细选哪种,看情况吧!
var quickSort = function(arr) { if (arr.length <= 1) {//若是数组长度小于即是1无需判断直接返回即可 return arr; } var pivotIndex = Math.floor(arr.length / 2);//取基准点 var pivot = arr.splice(pivotIndex, 1)[0];//取基准点的值,splice(index,1)函数可以返回数组中被删除的那个数 var left = [];//存放比基准点小的数组 var right = [];//存放比基准点大的数组 for (var i = 0; i < arr.length; i++){ //遍历数组,举行判断分配 if (arr[i] < pivot) { left.push(arr[i]);//比基准点小的放在左边数组 } else { right.push(arr[i]);//比基准点大的放在右边数组 } } //递归执行以上操作,对左右两个数组举行操作,直到数组长度为<=1; return quickSort(left).concat([pivot], quickSort(right)); };//使用的时刻,直接挪用quickSort()就行了。
1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入
2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各种产物的最新流动,优惠券领取点击进入
3.广告同盟: 整理了现在主流的广告同盟平台,若是你有流量,可以作为参考选择适合你的平台点击进入
链接: http://www.fly63.com/article/detial/2921