数据结构与算法
文章平均质量分 79
数据结构与算法
不能吃辣的JAVA程序猿
且行且珍惜
展开
-
如何理解算法的【时间复杂度】大白话
纯粹个人理解,比较简单粗暴,简单讲,所谓的时间复杂度,就是你的代码执行了多少次,执行的次数越多导致的耗时就越久。(以现在科技水平,暂时不考虑空间复杂度)时间复杂度都包括哪些O(1),O(log(n)),O(n),O(nlog(n)),O(n^2), 以及O(2^n),O(n!)等等排个序:Ο(1) < Ο(logn) < Ο(n) < Ο(nlogn) < Ο(n^2) < O(2^n)<Ο(n!)O(1) 的大白话理解简单粗暴的讲就是:你的每一行代码只执行了一次,注意是每一行代码。举原创 2022-05-28 11:04:22 · 140 阅读 · 0 评论 -
算法符号简单介绍
Ө 符号theta 符号在这我们用Ө(g(n)) 来表示一组函数:Ө(g(n)) = {f(n): 任何大于0的常数 c1, c2, 和 n0 满足 0<=c1g(n)<=f(n)<=c2g(n),对于所有的 n>=n0}.我们说g(n) 是f(n) 的渐近紧范围 (asymptotically tight bound)。因为Ө(g(n)) 的定义要求每个符合Ө(g(n)) 要求的f(n) 得是渐近不是负数的 (asymptotically non-negative),也就是原创 2022-04-27 17:00:59 · 1522 阅读 · 0 评论 -
《算法图解》— 对算法的一些基本理解【转】
尊重原创,创作不易!原文地址:https://zhuanlan.zhihu.com/p/38488791「算法」二字听来高深,常常让人望而却步,而《算法图解》是一本对算法初学者友好的书,此书图文并茂,循序渐进的帮我们理清算法中一些基础概念,还介绍了一些有意思的算法及其用途,以提升读者的兴趣,帮助我们步入算法的大门。本书也许不仅仅是一本讲述概念的书,作者还在潜移默化中培养我们的算法思维,从计算机的角度来看待问题。原书中的示例使用 Python 编写,不过考虑到目前我日常工作中使用最多的还是JavaScr转载 2022-04-12 11:59:07 · 324 阅读 · 0 评论 -
数据结构与算法——什么是数据结构?
大白话数据结构,直白地理解,就是研究数据的存储方式。我们知道,数据存储只有一个目的,即为了方便后期对数据的再利用,就如同我们使用数组存储 {1,2,3,4,5} 是为了后期取得它们的加和值,无缘由的数据存储行为是对存储空间的不负责任。因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一种好的方式来存储数据,而这也是数据结构的核心内容。例如,一直以来大家面对的数据存储,都是类似存储 1、2、{a,b,c} 这样的问题,解决方式无疑是用变量或者数组对数据进行存储,即:int a=1; i原创 2022-02-18 19:34:19 · 297 阅读 · 5 评论 -
满二叉树与完全二叉树的区别
满二叉树和完全二叉树的区别:完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。对于满二叉树,除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。而完全二叉树是效率很高的数据结构,完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。1.满二叉树定义:一个二叉树,如果每一个原创 2022-01-13 14:08:53 · 13362 阅读 · 0 评论 -
一致性哈希算法-源码篇
背景分布式缓存的前景下,如何实现缓存内容能够均衡的分布到缓存集群中?假设三台redis集群,有6个数据源对象需要缓存,期望分别缓存到每个redis中,每个存2个。思考方式一: for ?方式二:取模 ?均可行。Butfor的耦合性极高,后期维护成本大,性能也低,无法灵活的获取缓存,抛弃!取模的方式是可行的,但是存在一个致命的问题:如果我临时添加了一台redis呢?直接就缓存雪崩了参考原理地址这篇写的很好:https://blog.csdn.net/kefengwang/article/原创 2020-12-23 11:41:25 · 608 阅读 · 0 评论