数据结构与算法
EDB
这个作者很懒,什么都没留下…
展开
-
js实现快速排序
快速排序主要用到的是递归和分治的思想当数据量比较大时,快排无疑是最好的选择。对于升序来讲,大体思路是,首先我们定义左边指针为i,最右边为j,然后选最左边的数字作为参照,然后从右边往左边搜索,直到找到比参照数小的,然后将这个数字赋给i指针所在位置,再从左往右搜索直到找到比参照大的,然后将这个数赋给j指针所在位置,这样交替执行,知道i,j指针相遇,此时,再把参照数赋给i所在位置,这个时候i,j所在位置...原创 2018-05-12 14:10:50 · 215 阅读 · 0 评论 -
求两个数组的交集
先排序,再分别给两个数组定义一个从0开始的标志位var nums1 = [1, 2, 4, 6]var nums2 = [2, 3, 4, 9]function quickSort (nums, left, right) { let i = left let j = right let temp = nums[left] if (i >= j) { return } w...原创 2018-05-12 14:45:32 · 217 阅读 · 0 评论 -
js实现深度克隆
克隆是一个递归的过程:大概分为以下几步:遍历对象 for in 或者 for of 判断是否是这个对象的属性 hasOwnProperty( ) 判断是否具这个属性值的类型是否是object typeof(value ) === 'object',是则直接放入要克隆到的对象中,否则再判断是数组还是object ,这里是用的是Object的toString() 这个方法不同的类...原创 2018-06-08 17:27:25 · 376 阅读 · 0 评论