js中数组排序sort方法的原理分析_javascript技巧
程序员文章站
2022-03-30 13:49:17
...
本文实例分析了js中数组排序sort方法的原理。分享给大家供大家参考。具体分析如下:
但是我突然想到,sort用法为什么这么简单,其原理到底是什么呢?于是我试着不用sort对数组排序,原理是找到数组的最小值插入到新数组,然后删除数组中的这个最小值,更新数组后继续寻找最小值插入,如此循环,代码如下:
PS:这只是我写的一个方法,sort的原理应该不是这样的,还可以用冒泡法对数组排序,代码我就不写了,网上一大堆.当然上面的代码只是对数字数组进行了排序,对于字符串的排序,可以考虑字符串的localeCompare方法.
最近在百度的项目中要用到对数组进行排序,当然一开始自然想到了数组的sort方法,这方法应用非常简单,大致如下:
复制代码 代码如下:
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var arr2=["George","John","Thomas","James","Adrew","Martin"];
function arrsort(a,b){
return a-b;
}
console.log(arr.sort(arrsort)); //数字排序需要函数,如果要从大排到小,就return b-a;
console.log(arr2.sort()); //字母不需要
}
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var arr2=["George","John","Thomas","James","Adrew","Martin"];
function arrsort(a,b){
return a-b;
}
console.log(arr.sort(arrsort)); //数字排序需要函数,如果要从大排到小,就return b-a;
console.log(arr2.sort()); //字母不需要
}
但是我突然想到,sort用法为什么这么简单,其原理到底是什么呢?于是我试着不用sort对数组排序,原理是找到数组的最小值插入到新数组,然后删除数组中的这个最小值,更新数组后继续寻找最小值插入,如此循环,代码如下:
复制代码 代码如下:
window.onload=function(){
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var len=arr.length;
console.log(arr.join(","));
var newarr=[];
for(var i=0;i
newarr.push(Math.min.apply(null,arr)); //把最小值插入新数组
arr.splice(r(arr,Math.min.apply(null,arr)),1); //插入后,立马删除最小值
}
//找到最小值在数组中的位置
function r(s,v){
for(k in s){
if(s[k] == v){
return k;
}
}
}
console.log(newarr.join(","))
}
var arr=[2,55,55,1,75,3,9,35,70,166,432,678,32,98];
var len=arr.length;
console.log(arr.join(","));
var newarr=[];
for(var i=0;i
arr.splice(r(arr,Math.min.apply(null,arr)),1); //插入后,立马删除最小值
}
//找到最小值在数组中的位置
function r(s,v){
for(k in s){
if(s[k] == v){
return k;
}
}
}
console.log(newarr.join(","))
}
PS:这只是我写的一个方法,sort的原理应该不是这样的,还可以用冒泡法对数组排序,代码我就不写了,网上一大堆.当然上面的代码只是对数字数组进行了排序,对于字符串的排序,可以考虑字符串的localeCompare方法.
希望本文所述对大家的javascript程序设计有所帮助。
上一篇: js二维数组排序的简单示例代码
推荐阅读
-
【JavaScript】数组的sort方法排序原理详解
-
js数组Array sort方法使用深入分析_javascript技巧
-
以JSON形式将JS中Array对象数组传至后台的方法_javascript技巧
-
以JSON形式将JS中Array对象数组传至后台的方法_javascript技巧
-
JS中的数组的sort方法使用示例_javascript技巧
-
js对数组中的数字从小到大排序实现代码_javascript技巧
-
js中的数组Array定义与sort方法使用示例_javascript技巧
-
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法_javascript技巧
-
js数组Array sort方法使用深入分析_javascript技巧
-
js 重构Array的sort排序方法_javascript技巧