
算法相关的知识
和算法相关的一些知识
人鱼之伤
只是个人学习过程中的一些理解和随意的记录,如果有错误欢迎指出
展开
-
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 · 81 阅读 · 0 评论 -
节流与防抖(都是简单版
// 防抖;在一定时间内没有第二次触发某个事件,这个事件才会执行,// 如果在一定时间内多次触发,就会从头开始计算时间,到设定的时间后再次出发// 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。function debounce(func, wait) { let timeout = null return function () { clearTimeout(timeout) timeout = setTimeout(() => { f原创 2021-08-21 21:52:43 · 107 阅读 · 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 · 166 阅读 · 0 评论 -
Javascript中的大数相加
js存放整数的时候有一个安全范围,一旦数字超过这个范围便会损失精度。我们不能用拿精度损失的数字进行运行,因为运算结果一样是会损失精度。我们用字符串来表示数据,这样就不会丢失精度。·JS中整数的最大安全范围是:9007199254740991padStart(len, str)根据给定长度自动在字符串的前面补充想要补充的字符串len给定的长度,转换后str想补充的字符串let a = "9007199254740991";let b = "1234567899999999999";fu原创 2021-08-17 21:41:26 · 195 阅读 · 0 评论 -
Javascript的最大回文字符串
这个是一个典型的动态规划的问题,在做这道题之前最好还是学习理解一下什么是动态规划原创 2021-08-17 14:33:12 · 123 阅读 · 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 · 92 阅读 · 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 · 86 阅读 · 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 · 144 阅读 · 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 · 75 阅读 · 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 · 81 阅读 · 0 评论