算法
在计算机语言的世界,掌握语言的算法是很关键的事情,这是一种逻辑上解决问题的一个关键,如何使代码运行速度更快,如何使代码更好看是程序员应该考虑到的问题,以后我会把遇到的所有的算法题,以及一些算法贴在这篇博客上,作为一个记录。
1、二分排序法
二分排序法.采用数组的第一个数作为标杆
然后使用两个数组分别装比这个标杆大的数和比这个标杆小的数
因为这个数组不可能只比较一次就可以
我们也不知道会比较多少次
所以呢我们对这两个数组进行递归比较
这样这两个数组会一直把标杆排出去
数组的个数就会越来越少知道数组的元素剩下只有一个
我们就让比较过的数都串联起来。这就是二分排序法
function quickSort(arr) {
if (arr.length <= 1) return arr
let povit = arr[0]
let big = []
let small = []
for (let i = 1; i < arr.length; i++) {
if (arr[i] >= povit) {
big.push(arr[i])
} else {
small.push(arr[i])
}
}
return quickSort(big).concat(povit, quickSort(small))
}
var arr = [5, 9, 8, 7, 2, 1, 41, 88]
console.log(quickSort(arr));
1.2、二分排序法使用filter进行一个优化
function quickSort(arr) {
if (arr.length <= 1) return arr
let povit = arr[0]
let big = arr.slice(1).filter(item => item >= povit)
let small = arr.slice(1).filter(item => item < povit)
// 大到小
// return quickSort(big).concat(povit,quickSort(small))
//小到大
return quickSort(small).concat(povit, quickSort(big))
}
var arr = [5, 9, 8, 7, 2, 1, 41, 88]
console.log(quickSort(arr));
这篇博客介绍了二分排序法的原理和两种实现方式。首先详细解释了基础的二分排序法,通过递归将数组按标杆进行划分。接着,展示了如何利用filter方法优化排序过程,提供了一个从大到小和从小到大排序的示例。通过这种方式,程序员可以更好地理解和应用二分排序算法来优化代码的效率和可读性。
5970

被折叠的 条评论
为什么被折叠?



