Java的sort的排序及使用详解

网友投稿 616 2022-08-30


Java的sort的排序及使用详解

目录1.按升序排列:2. 随机排序:3.按降序排列:4.根据参数属性值排序5. 根据参数不同,来确定是升序排列,还是降序排序总结

sort() 方法在适当的位置对数组的元素进行排序,并返回数组。数组会按照字符的Unicode进行排序(把数组里面当成字符串处理)

1.按升序排列:

var arr=[1,11,2,22,5,4,0];

arr.sort(

function(n1,n2){

return n1-n2;

});

alert(arr);//[0,1,2,4,5,11,22]

2. 随机排序:

var arr=[1,11,2,22,5,4,0];

arr.sorhttp://t(

function(n1,n2){

return Math.random()-0.5;

});

alert(arr);

3.按降序排列:

var arr=[1,11,2,22,5,4,0];

arr.sort(

function(n1,n2){

return n2-n1;

});

alert(arr);

4.根据参数属性值排序

sort方法接收一个函数作为参数,这里嵌套一层函数用来接收XUPUh对象属性名,其他部分代码与正常使用sort方法相同

var arr = [

{name:'zopp',age:0},

{name:'gpp',age:18},

{name:'yjj',age:8}

];

function compare(property){

return function(a,b){

var value1 = a[property];

var value2 = b[property];

return value1 - value2;

}

}

console.log(arr.sort(compare('age')))

5. 根据参数不同,来确定是升序排列,还是降序排序

sortBy: function(attr,rev){

//第二个参数没有传递 默认升序排列

if(rev == undefined){

rev = 1;

}else{

rev = (rev) ? 1 : -1;

}

return function(a,b){

a = a[attr];

b = b[attr];

if(a < b){

return rev * -1;

}

if(a > b){

return rev * 1;

}

return 0;

}

}

newArray.sort(sortBy('number',false))

V8 引擎 sort 函数只给出了两种排序 InsertionSort 和 QuickSort,数量小于10的数组使用 InsertionSort,比10大的数组则使用 QuickSort。

原理:sort()方法如何实现排序

第一次1和8比较,1<8,不需要调整位置。   

  第二次8和3比较,8>3,需要调整位置。但是这里没有交换位置,仅仅是8覆盖了3位置。这里就可以推断出不是单纯的使用了冒泡算法。

  第三是1和3比较,1<3,3替换了8的位置。什么鬼,几个意思???看到这里我也是表示不懂呀。那就继续往下看咯。   

  第四是8和5比较,8>5,又仅仅是覆盖,没有交换位置。还是不懂,继续往下!

  第五是3和5比较,3<5,5替换了8的位置,不懂,继续往下!   

  第六是8和-1比较,8>-1, 还仅仅是覆盖,继续往下!

  第七、八、九次,-1依次和5,3,1做了比较,并且5,3,1都移动了一次位置。

我们得出了结论:sort()方法是使用的冒泡和插入两种方式结合进行排序的。

模拟排序:

var arr=[32,12,4,20,1,54,56,6,14];

function findMinIndex(arr,start){

var iMin=arr[start];

var iMinIndex=start;

for(var i=start;i

if(iMin>arr[i]){

iMin=arr[i];

iMinIndex=i;

}

}

return iMinIndex;

}

for(var i=0;i

var n=findMinIndex(arr,i);

var tem;

tem=arr[n];

arr[n]=arr[i];

arr[i]=tem;

}

alert(arr);

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

if(iMin>arr[i]){

iMin=arr[i];

iMinIndex=i;

}

}

return iMinIndex;

}

for(var i=0;i

var n=findMinIndex(arr,i);

var tem;

tem=arr[n];

arr[n]=arr[i];

arr[i]=tem;

}

alert(arr);

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

var n=findMinIndex(arr,i);

var tem;

tem=arr[n];

arr[n]=arr[i];

arr[i]=tem;

}

alert(arr);

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Lambda表达式超详细介绍
下一篇:蓝桥杯每日一练:字符串对比(蓝桥杯字符串比较)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~