关于排序,对于客户端的一些应用,比如:对于一些名字或者数字的排序,最简单最基础的就是冒泡排序,以及一些高阶排序的方法。
1.原生冒泡实现排序
冒泡排序
是计算机领域一种较为简单的排序算法,他的作用是,通过循环对比前后相邻俩个数的大小进行交换值,从而得到一组排序过后的数。具体操作如下:
//从小到大(冒泡排序)
let arr = [5, 4, 3, 2, 9, 2, 3, 4, 2, 1, 6, 23, 11, 52, 66, 87]; //给定一个数组
for (let i = 0; i <= arr.length; i++) { //外层循环遍历数组里面每一个数
for (let j = i; j < arr.length; j++) { //内层循环数组的下一个数
if (arr[i] > arr[j]) { //通过比较大小 前一个数大于后一个数交换
let max = arr[i]; //记录较大的数
arr[i] = arr[j]; //把小数给arr[i]
arr[j] = max; //把大数给arr[j] 这样是实现前后相邻俩位数的交换
}
}
}
console.log(arr); //[1, 2, 2, 2, 3, 3, 4, 4, 5, 6, 9, 11, 23, 52, 66, 87]
//从大到小(冒泡排序)
let arr = [5, 4, 3, 2, 9, 2, 3, 4, 2, 1, 6, 23, 11, 52, 66, 87];
for (let i = 0; i <= arr.length; i++) { //外层循环遍历数组里面每一个数
for (let j = i; j < arr.length; j++) { //内层循环数组的下一个数
if (arr[i] < arr[j]) { //通过比较大小 前一个数小于后一个数交换
let min = arr[i]; //记录较大的数
arr[i] = arr[j]; //把大数给arr[i]
arr[j] = min; //把小数给arr[j] 这样是实现前后相邻俩位数的交换
}
}
}
console.log(arr); //[87, 66, 52, 23, 11, 9, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1]
~十大排序算法
十大基础排序算法图解
十大基础排序算法图解
~数组高阶排序sort()
此外对于排序还有一个简单的实现,就是数组高阶方法sort(),它是对数组进行排序,然后返回排完序之后数组的方法,但是由于它取决于具体操作的效果,因此无法保证排序的时间和空间复杂性。
此外,sort()不仅能对数值进行排序,还可以针对于对象进行排序,也就是说,它可以实现复杂数据类型的排序。sort()数组高阶方法介绍
let brr = [{
a: 1
}, {
a: 4
}, {
a: 2
}, {
a: 6
}, {
a: 11
}, {
a: 53
}, {
a: 34
}]
let newBrr = brr.sort((a, b) => a.a - b.a) //这是对数组里面对象的值进行排序
console.log(newBrr);
//0: {a: 1}
//1: {a: 2}
//2: {a: 4}
//3: {a: 6}
//4: {a: 11}
//5: {a: 34}
//6: {a: 53}
排序的应用场景有很多,针对不同的商业实用的场景也有所不同,怎么方便怎么来!