搜索结果
查询Tags标签: 算法与数据结构,共有 139条记录-
如何在 Python 中实现遗传算法
前言 遗传算法是一种模拟自然进化过程与机制来搜索最优解的方法,它由美国 John Holland 教授于20世纪70年代提出。遗传算法的主要思想来源于达尔文生物进化论和孟德尔的群体遗传学说,通过数学的方式,将优化问题转换为类似生物进化中的染色体基因的交叉和变异等过程,因…
2023/6/15 5:52:36 人评论 次浏览 -
谈谈一致性哈希算法
一致性哈希算法是1997年由麻省理工的几位学者提出的用于解决分布式缓存中的热点问题。大家有没有发现,我们之前介绍的例如快排之类的算法是更早的六七十年代,此时分布式还没有发展起来,大家往往还在提高单机性能。但是九十年代开始,逐渐需要用分布式集群来解决大型问题…
2023/6/3 1:23:24 人评论 次浏览 -
红黑树是怎么来的
平衡的关键 书接前文。 在前文《二叉搜索树的本质》中我们提到,二叉搜索树在实践中有个很大的问题:树倾斜。按如下顺序插入数据会让二叉搜索树退化成普通链表,进而相关操作的时间复杂度退化到 O(n):怎样让这棵树在写操作后仍然保持平衡呢? R 教授一边呷着黑咖啡,一边…
2023/5/22 14:22:24 人评论 次浏览 -
为什么说每个程序员都要尽早掌握设计模式相关知识?
分享下前 Google 工程师「王争」对于这个话题的思考。我相信,很多程序员都已经意识到基础知识的重要性,觉得要夯实基础,才能走得更远,但同时对于如何将基础知识转化成开发“生产力”仍然有些疑惑。所以,你可能看了很多基础的书籍,比如操作系统、组成原理、编译原理等…
2022/12/28 4:24:09 人评论 次浏览 -
如何抓住重点,系统高效地学习数据结构与算法?
大家好,我是王争。 你是否曾跟我一样,因为看不懂数据结构和算法,而一度怀疑是自己太笨?实际上,很多人在第一次接触这些知识时,都会有这种感觉,觉得数据结构和算法很抽象,晦涩难懂,宛如天书。正是这个原因,让很多初学者望而却步。 我个人觉得,其实真正的原因是你…
2022/12/10 4:25:04 人评论 次浏览 -
【金秋打卡】第14天 JavaScript版数据结构与算法-树形结构概念(二叉树的遍历)
课程名称: JavaScript版数据结构与算法 课程章节:第8章 数据结构之“树” 课程讲师: lewis 课程内容:前端JS的算法基础 课程介绍: 8-1 树简介 8-2 深度与广度优先遍历 8-3 二叉树的先中后序遍历 8-4 二叉树的先中后序遍历(非递归版) 8-5 LeetCode:104. 二叉树的最大…
2022/11/8 3:23:57 人评论 次浏览 -
深入浅出,图文并茂,理解递归
一,简单的递归(求阶乘) 阶乘: n!=123…(n-1)n // 例如:求5的阶乘是:12345 function factorial(n){if( n<1 ) returnreturn n*factorial(n-1) }console.log(factorial(5)) // 120二,递归函数的调用顺序 function factorial(n){console.log(n)if( n<2 ) return…
2022/10/31 4:24:59 人评论 次浏览 -
【金秋打卡】第6天 JavaScript版数据结构与算法- 数据结构之“集合”
课程名称: JavaScript版数据结构与算法 课程章节:第5章 数据结构之“集合” 课程讲师: lewis 课程内容:前端JS的算法基础 课程介绍: 第6章 数据结构之“集合” 6-1 集合简介 6-2 LeetCode:349. 两个数组的交集 6-3 前端与集合:使用 ES6 中 Set 6-4 集合章节总结 一…
2022/10/31 3:25:02 人评论 次浏览 -
【金秋打卡】第5天 JavaScript版数据结构与算法- 数据结构之“链表”
课程名称: JavaScript版数据结构与算法 课程章节:第5章 数据结构之“链表” 课程讲师: lewis 课程内容: 课程介绍 第5章 数据结构之“链表” 5-1 链表简介(08:42) 5-2 LeetCode:237.删除链表中的节点(04:48) 5-3 LeetCode:206.反转链表(08:52) 5-4 LeetCode:2. 两数…
2022/10/29 3:24:53 人评论 次浏览 -
【金秋打卡】第4天 JavaScript版数据结构与算法- 数据结构之“队列”
课程名称: JavaScript版数据结构与算法 课程章节: 数据结构之“队列” 课程讲师: lewis 课程内容: 课程介绍 第4章 数据结构之“队列” 4-1 队列简介 4-2 什么场景用队列 4-3 LeetCode:933. 最近的请求次数 4-4 前端与队列:JS 异步中的任务队列 4-5 队列-章节总结 一…
2022/10/28 3:24:52 人评论 次浏览 -
2022 Java开发入门学习路线(一) 掌握计算机基础
使用指南内容均来自于慕课网免费课程与教程,无付费内容每个课程都标注了难易程度及时长,可自行计划及调整相关语言、版本均选择企业使用的稳定版Java语言在国内IT行业,就业率长年稳居榜首,薪资也非常可观,对于IT应届生和有转行IT行业意向的朋友来说,是个上佳选择;另…
2022/10/19 4:25:00 人评论 次浏览 -
初识内存中的数据——由浅入深理解程序的底层实现原理(一)
引言:要想成为一名合格的开发者,掌握计算机系统工作原理是必须的,而在学这些之前应具有一门编程语言(汇编最好)的基础和一些计算机底层基础。本篇,我将从零开始一步步地探究高级语言底层逻辑和实现原理,希望对喜欢钻研的小伙伴们有所帮助。 一些数据类型的存储简单…
2022/10/11 4:23:57 人评论 次浏览 -
CPU的分身术:千手观音与齐天大圣
由于CPU的速度太快,不但人跟不上它,连它周围的小伙伴也跟不上它,例如网卡和磁盘(也叫硬盘)。因为短时间内无法解决这种CPU和不同设备间的速度匹配问题,所以对于科学家而言,这其实就造成了对CPU计算机资源的浪费。那怎么办呢?这难不倒聪明的科学家们——其实就是之…
2022/10/1 4:17:15 人评论 次浏览 -
CPU是如何上位并制霸计算机的?
现在,全世界的人们差不多有一项共识,那就是由计算机技术所引发的信息革命已经成为生产力发展的主要和重要推动力量,而在计算机相关的产业中,芯片,又无疑是决定发展质量和制约发展速度的核心因素。一颗大概只有指甲盖大小的CPU为什么这么牛逼?为什么缺了它计算机就玩…
2022/9/30 4:16:21 人评论 次浏览 -
【学习打卡】第43天 数据结构和算法
子集 (leetcode - 78) 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]输入:nums = [0]…
2022/9/18 4:16:23 人评论 次浏览