JS常用数组排序方法汇总
- Bubble_Sort 冒泡排序
- 每一轮从数组头部开始,每两个元素比较大小并进行交换 直到一轮当中最大或最小的值被放在数组的尾部,然后,不断重复这个过程,直到所有的元素都排好位置.
// var arr1 = [1, 3, 14, 520, 99, 2, 6];
var arr1 = [2, 3, 7, 6, 4, 5, 1];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr1.length - i - 1; j++) {
if (arr1[j] > arr1[j + 1]) {
var temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
console.log(arr1);
- 演算过程
初始值:2, 3, 7, 6, 4, 5, 1- 2, 3, 6, 7, 4, 5, 1
- 2, 3, 6, 4, 7, 5, 1
- 2, 3, 4, 6, 7, 5, 1
- 2, 3, 4, 6, 5, 7, 1
- 2, 3, 4, 5, 6, 7, 1
- 2, 3, 4, 5, 1, 6, 7
- Insertion_Sort 插入排序
- 不断的将尚未排好序的数插入到已经排好序的部分.
var arr2 = [1, 3, 14, 520, 99, 2, 6];
for (var i = 0; i < arr2.length; i++) {
var n = i;
while (arr2[n] > arr2[n + 1] && n >= 0) {
var temp = arr2[n];
arr2[n] = arr2[n + 1];
arr2[n + 1] = temp;
n--;
}
}
console.log(arr2);
演算过程
初始值:2, 3, 7, 6, 4, 5, 1- 1, 3, 7, 6, 4, 5, 2
- 1, 2, 7, 6, 4, 5, 3
- 1, 2, 3, 6, 4, 5, 7
- 1, 2, 3, 4, 6, 5, 7
- 1, 2, 3, 4, 5, 6, 7
- 1, 2, 3, 4, 5, 6, 7
- 1, 2, 3, 4, 5, 6, 7
冒泡排序中,经过每一轮的排序处理后,数组后端的数都是排好序的;
插入排序中,经过每一轮的排序处理后,数组前端的数都是排好序的;
- Select_Sort 选择排序
通过比较,选出最小的数放在第一位,然后在其余所有的数中选出最小的数排在第二位,以此类推,直到排序结束.
在排序中每一轮比较会把最小的数移动到最前,所以相互比较的次数每一轮都会比前一轮少一次.
var arr3 = [1, 3, 14, 520, 99, 2, 6]; var temp; for (var i = 0; i < arr3.length - 1; i++) { for (var j = i + 1; j < arr3.length; j++) { if (arr3[i] > arr3[j]) { temp = arr3[i]; arr3[i] = arr3[j]; arr3[j] = temp; } } } console.log(arr3);
演算过程
初始值:2, 3, 7, 6, 4, 5, 1- 1, 3, 7, 6, 4, 5, 2
- 1, 2, 7, 6, 4, 5, 3
- 1, 2, 3, 6, 4, 5, 7
- 1, 2, 3, 4, 6, 5, 7
- 1, 2, 3, 4, 5, 6, 7
sort()方法排序
var arr4 = [1, 3, 14, 520, 99, 2, 6]; arr4.sort(function (a, b) { return a - b; //正序 // return b - a; //倒序 }) console.log(arr4);