js中常见的数组排序算法

js中常见的数组排序

算法-冒泡排序和选择排序

(1)reverse()翻转数组中元素的顺序

var   arr = [11,22,33,44];

var a = arr.reverse();

console.log(arr);

//输出结果[44,33,22,11]

(2) sort()  排序 按照字符串排序。

var  arr = [11,5,21,9];

var a = arr.sort();

arr.sort(function(a,b){

//return a-b;输出得结果[5,9,11,21];

return b-a;//输出得结果[21,11,9,5];

})

console.log(arr);

排序算法:

(1)冒泡排序:数组中的元素两两进行比较,如果第一个比第二个大,交换值,再让第二个和第三个比较,以此类推,第一轮结束后,最大值排到了最后再进行第二轮比较,第二个大值排到倒数第二个位置上,直至比较完所有元素

代码如下:

var arr = [32,22,29,11,57];

function bubbleSort(arr){

for (var i=0;i

for(var j=0;j

if(arr[j]>arr[j+1]){

var temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

return arr;

}

console.log(bubbleSort(arr));//输出结果[11,22,29,32,57]

(2)选择排序

假定第一个值为最小值,设一个变量minIndex指向这个最小的索引,让这个值和剩余的其他值进行比较,如果有比这个值小的,改变minIndex的值,再让minIndex 指向的值和剩余的值进行比较,如果有比这个值小的,改变minIndex的值,再让minIndex指向的值和剩余的值进行比较,还有小的,继续改变minIndex的值,第一轮结束后,minIndex指向就是最小值,让这个最小值和第一个值交换位置

function selectSort(arr){

for(var i=0;i

var  minIndex = i;

for (var j= i+1;j

if(arr[minIndex]>arr[j]){

minIndex = j;

}

}

var temp = arr[i];

arr[i]=arr[minIndex];

arr[minIndex] = temp;

}

return arr;

}

console.log(selectSort(arr));输出结果为:[11,22,29,32,57]

你可能感兴趣的:(js中常见的数组排序算法)