算法
scorpio_h
这个作者很懒,什么都没留下…
展开
-
如何打乱一个数组
方法一:新建个空数组,从原数组中随机截取一个元素插入空数组中,直到数组长度变为0 function random (arr) { let dp = [...arr] const result = [] while (dp.length > 0) { let randomIndex = Math.floor(Math.random() * (dp.length)) result.push(dp.splice(randomIndex, 1)[0]) } return原创 2020-10-10 15:42:33 · 699 阅读 · 0 评论 -
一次性删除一个数组中多个元素
正常的循环删除,在删除第一个的时候数组内元素的下标已经被改变,所以无法使用常规的循环删除。以下两种方法可以正常删除一个数组中多个指定元素 1、filter let arr = [1, 3, 5, 7, 9]; arr = arr.filter(item => item !== 5); 2、逆向循环(从尾部开始向前查找,这样还没有被查到的元素位置也不会被改变) let arr = ...原创 2018-11-13 10:52:59 · 6582 阅读 · 0 评论 -
算法之排序算法(快速、选择、冒泡、希尔)
排序算法大致有这些: 常用的排序算法大致四种快速、选择、冒泡、希尔 1、快速排序 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用。快速排序是一种既不浪费空间又可以快一点的排序算法。 先从数列中取出一个数作为“基准”。 分区过程:将比这个“基准”大的数全放到“基准”的右边,小于或等于“基准”的数全放到“基...原创 2019-07-07 20:59:45 · 1030 阅读 · 0 评论