js实现数组排序的方法有很多,下面我就来说说几种常见的和最简单的方法(第三种最简单):
第一种.冒泡排序 从小到大
数组中的元素两两比较,如果第一个元素比第二个元素大,交换位置,然后让第二个和第三个比较,以此类推,第一轮结束后,最大的元素排在了最后
然后进行第二轮,两两比较;
看代码
var arr1 = [22, 13, 57, 4, 66, 12];
function bubbleSort(arr) {
for(var i = 0; i < arr.length - 1; i++) { //外层循环控制轮数
for(var j = 0; j < arr.length - 1 - 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(bubbleSort(arr1));
第二种:选择排序
假设第一个元素为最小值,设一个变量minIndex保存这个值对应的索引,然后让最小索引对应值和其他剩余的所有元素进行比较,如果有比minIndex对应的值小的,改变minIndex的值,再让minIndex对应的值和剩余的值比较,直至结束,第一轮完成能取到一个最小值,和第一个值交换位置
进行第二轮,假设第二