1//数组本身sort排序
var arr=[1,2,14,65,3,97,24]
//必须设置一个排序函数 a-b升序 b-a降序
arr.sort(function(a,b){
return a-b
})
console.log(arr);//[1, 2, 3, 14, 24, 65, 97]
//冒泡
//相邻两个比较,小的去前面,再开始第二轮比较
function fn (arr){
for(var i =0;i<arr.length;i++){
for(var j=0;j<arr.length-i;j++){
///相邻两个比较,小的去前面
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1]
arr[j+1]=temp
}
}
}
return arr;
}
console.log(fn(arr));
//========选择排序=============
//外层循环遍历每一项,第一次用第一个数跟后面所有的比较,小的去第一个;
//第二次用第二个跟后面所有比较,小的去第二个
function xuanze (arr){
for(var i =0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}
console.log(xuanze(arr));
快排
function quickSort(arr){
//如果数组<=1,则直接返回
if(arr.length <= 1) return arr
var zhongIndex = Math.floor(arr.length / 2)
//取出中间下标对的值,原值删除
var zhong = arr.splice(zhongIndex, 1)[0]
//定义左右数组
var left = [], right = []
//比基准小的放在left,比基准大的放在right
for(var i = 0; i < arr.length; i++){
if(arr[i] <= zhong){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
//最后将数组连接 ,左右数组递归调用
return quickSort(left).concat([zhong],quickSort(right))
}
console.log(quickSort(arr));
今天的文章js排序方法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/6997.html