![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法相关的知识
和算法相关的一些知识
人鱼之伤
只是个人学习过程中的一些理解和随意的记录,如果有错误欢迎指出
展开
-
Javascript版的二叉树
代码如下: class Node { constructor(data){ this.left = null this.right = null this.value = data } } class BinarySearchTree { // class BST { constructor() { this.root = null; } insertNode(root, newNode){ if(newNode.value < root.val原创 2021-08-30 21:02:28 · 57 阅读 · 0 评论 -
节流与防抖(都是简单版
// 防抖;在一定时间内没有第二次触发某个事件,这个事件才会执行, // 如果在一定时间内多次触发,就会从头开始计算时间,到设定的时间后再次出发 // 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。 function debounce(func, wait) { let timeout = null return function () { clearTimeout(timeout) timeout = setTimeout(() => { f原创 2021-08-21 21:52:43 · 72 阅读 · 0 评论 -
Javascript中的链表
单向链表 /** * @desc 单向链表 */ class Node { // 链表节点 constructor(element) { this.data = element // 节点数据 this.next = null // 下一个节点的指针 } } class NodeList { // 链表 constructor(item) { this.head = new Node(item); //初始化链表的头节点 } /** * @de原创 2021-08-21 15:54:27 · 121 阅读 · 0 评论 -
Javascript中的大数相加
js存放整数的时候有一个安全范围,一旦数字超过这个范围便会损失精度。 我们不能用拿精度损失的数字进行运行,因为运算结果一样是会损失精度。 我们用字符串来表示数据,这样就不会丢失精度。 ·JS中整数的最大安全范围是:9007199254740991 padStart(len, str) 根据给定长度自动在字符串的前面补充想要补充的字符串 len给定的长度,转换后 str想补充的字符串 let a = "9007199254740991"; let b = "1234567899999999999"; fu原创 2021-08-17 21:41:26 · 157 阅读 · 0 评论 -
Javascript的最大回文字符串
这个是一个典型的动态规划的问题,在做这道题之前最好还是学习理解一下什么是动态规划原创 2021-08-17 14:33:12 · 96 阅读 · 0 评论 -
Javascript中的一些搜索
顺序搜索 function sequentialSearch(item, array) { for(let i = 0; i < array.length;i++) { if(item === array[i]) { return i } } return -1 } console.log(sequentialSearch(2,[3,2,4,5,3])) 二分搜索 // function quickSort() function binarySearch(i原创 2021-08-15 21:24:58 · 68 阅读 · 0 评论 -
Javascript的归并排序
function mergeSort(arr) { let len = arr.length if(len < 2) { return arr } let middle = Math.floor(len / 2), left = arr.slice(0, middle), right = arr.slice(middle) return merge(mergeSort(left, mergeSort(right))) } function me原创 2021-08-14 15:59:23 · 64 阅读 · 0 评论 -
javascript的希尔排序
function shellSort(arr) { var len = arr.length, temp, gap = 1; while(gap < len/3) { //动态定义间隔序列 gap =gap*3+1; } for (gap; gap > 0; gap = Math.floor(gap/3)) { for (var i = gap; i < len; i++) .原创 2021-08-13 15:26:51 · 114 阅读 · 0 评论 -
javascript版本的插入排序
function insertionSort(arr) { const len = arr.length let preIndex, current for(let i = 1; i < len; i++){ preIndex = i -1 current = arr[i] while(preIndex >= 0 && arr[preIndex] > current) { arr[preIndex + 1] = arr[pre原创 2021-08-13 13:55:17 · 50 阅读 · 0 评论 -
javascript的选择排序
// 最基础的版本 function selectionSort(arr) { const len = arr.length; let minIndex, temp; for (let i = 0; i < len - 1; i++) { minIndex = i; for (let j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { //寻原创 2021-08-13 13:38:31 · 52 阅读 · 0 评论