js数组内数字按⼤⼩排序实现函数
正常冒泡排序:
function evlabc(a) { //排序⼤⼩
var i = j = t = 0;
for (i = 0; i < a.length; i++) {
for (j = 0; j < a.length; j++) {
if (a[i] < a[j]) {// 相邻元素两两对⽐
t = a[i];
a[i] = a[j];
a[j] = t;
}
console.log('i:' + i + ' j:' + j + '  当前数组为:' + a);
}
}
return a;
}
var arr = [5, 100, 6, 3, -12];
evlabc(arr);
冒泡排序优化版:
function sort(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){// 相邻元素两两对⽐
var hand = arr[j];
arr[j]=arr[j+1];
arr[j+1]=hand;
}
console.log('i:' + i + ' j:' + j + '  当前数组为:' + arr);
}
}
return arr;
}
var ar = [5,100,6,3,-12];
sort(ar);
  由此可以看出,将相邻的两个数依次相⽐较,⼤数向后放,⼩数向前移。即是位置交换实现⼩数在前,⼤数在后。经过10次⽐较后,最终实现重排。
如果从⼤到⼩排序的话,则将if(arr[j]>arr[j+1])改为if(arr[j]<arr[j+1])即可
极简sort版:
function sortNumber(a,b){//升序
return a - b
}
var arr = [5, 100, 6, 3, -12];
arr.sort(sortNumber);
关于sort()函数
sort函数没有使⽤参数时,将按字母顺序对数组中的元素进⾏排序。如果想按照其他标准进⾏排序,就需要提供⽐较函数,该函数要⽐较两个值,然后返回⼀个⽤于说明这两个值的相对顺序的数字。⽐较函数应该具有两个参数 a 和 b,其返回值如下:
若 a ⼩于 b,在排序后的数组中 a 应该出现在 b 之前,则返回⼀个⼩于 0 的值。
若 a 等于 b,则返回 0。javascript说明
若 a ⼤于 b,则返回⼀个⼤于 0 的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。