随笔分类 -  算法相关

摘要:选择排序的基本思想就是从待排序列中选择出最小的,然后将被选出元素和序列的第一个元素互换位置(当前默认是升序排列),则互换完成后第一个元素就是整个序列的最小的元素,则一次选择排序结束。然后我们从剩下的子序列中选择出最小的,然后将该被选出来的元素和该子序列的第一个元素(即整个序列的第二个元素)互换位置, 阅读全文
posted @ 2019-06-17 20:54 不知不觉、 阅读(98) 评论(0) 推荐(0) 编辑
摘要:原理: 直接插入排序: 直接插入排序就是从待排序列中选出一个元素,插入到已经有序的元素之中,直到所有的元素都插入到有序序列中所有的元素就全部有序了。 通常的做法就是将第一个元素看做是有序的元素(即待排序列的第一个元素看做是有序序列),然后我们将第二个元素和有序序列(即第一个元素)作比较,按正确的序列 阅读全文
posted @ 2019-06-17 20:30 不知不觉、 阅读(195) 评论(0) 推荐(0) 编辑
摘要:伪快速排序function quickSort (arr) { if (arr.length 0) { return []; } let left = []; let right = []; let pivot = arr[0]; for (let index = 1; index < arr.le 阅读全文
posted @ 2019-05-23 23:50 不知不觉、 阅读(158) 评论(0) 推荐(0) 编辑
摘要:思路: 将序列当中的左右元素,依次比较,保证右边的元素始终大于左边的元素;( 第一轮结束后,序列最后一个元素一定是当前序列的最大值;) 对序列当中剩下的n-1个元素再次执行步骤1。 对于长度为n的序列,一共需要执行n-1轮比较 阅读全文
posted @ 2019-05-22 14:40 不知不觉、 阅读(227) 评论(0) 推荐(0) 编辑
摘要:定一个整型数组(数组中的元素可重复,已排序),以及一个指定的值。找出数组中两数之和为指定值的所有整数对,要求时间复杂度为O(N)。 首先来分析一下这个题,假设题目没有说已排序和时间复杂度的要求,那么用最暴力的方法就是直接遍历两次数组,时间复杂度为O(N*N)。这里也来实现一下,代码如下: 如果题目没 阅读全文
posted @ 2019-05-21 16:35 不知不觉、 阅读(2171) 评论(0) 推荐(0) 编辑
摘要:结果 阅读全文
posted @ 2018-12-06 18:52 不知不觉、 阅读(445) 评论(0) 推荐(0) 编辑
摘要:const arr = [ { id: 1, parentId: 0, name: '四川' }, { id: 2, parentId: 0, name: '贵州' }, { id: 3, parentId: 0, name: '云南' }, { id: 4, parentId: 0, name: '江苏' }, { id: 5, parentId: 1, name: '成... 阅读全文
posted @ 2018-11-30 17:41 不知不觉、 阅读(276) 评论(0) 推荐(0) 编辑
摘要:算法定义 算法由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。为了便于比较同一个问题的不同算法,通常的做法是,从算法中选取一种对于所研究的问题(或算法类型)来说是基本操作的原操作,以该基本操作的重复执行的次数作为算法的时间量度。不同的算法可能 阅读全文
posted @ 2018-11-22 19:33 不知不觉、 阅读(1021) 评论(0) 推荐(0) 编辑