java技术圈 为您找到相关结果 26

算法之时间复杂度简析

算法之时间复杂度简析 前言 最近准备对算法进行一些系统的总结和学习,不积跬步无以至千里,不积小流无以成江海.此文主要对时间复杂度进行简单梳理和个人总结,本人才疏学浅,有所疏漏在所难免,如有不当和错误之处,欢迎指正 时间复杂度的定义(Time Complexity) 时间复杂度,用简单地话描述为:为了大概估算程序运算时间的一种概量。那用什么来估算的呢?用简单的程序执行代码的次数,如int a = 3执行一次,一个n此的for循环表示执行n次等等。广义的T(n)表示在一个完全理想状态的计算机中程序所执行的实际指令次数,下面会提到的O(n)大O(Big Oh),Ω(omega),Θ(Theta) 都是对T(n)的一个大略估算抽象而来,这里先说明一下个人理解的精确度大小为:T(n)>Θ(Theta)...阅读全文

博文 2019-04-04 09:53:07 www.allocmem.com

经典问题-

前言 最近回溯算法,对以往算法和新学习算法进行一个系统的整理和学习,本文的最大子序列和的问题在很多算法书籍和技术文章中对此都有详述,个人简单整理仅为了再次消化和日后查阅,不喜误喷。个人理解,如有错误,欢迎指正。 注:本文中提及的时间复杂度均使用大O法。 问题描述 求-2,4,-1,5,6的最大子序列和 注:如果所有值都为负,则最大子序列和为0 方案一 思路:使用穷举的方式,使用for循环列出所有的子序列进行求和,每次进行对比并把大的数赋值给最大子序列和变量,总共使用三个for循环 注:i循环为从-2到6(头到尾),j循环为i到此序列size,k为计算此时i到此时j的子序列和 源码如下: //穷举遍历法 三个for循环时间复杂度为n*n*n 十分低效 public static int max...阅读全文

博文 2019-04-04 09:53:16 最大子序列和的个人简单整理

折半查找算法

运行时间中的对数 前一篇文章中分治递归的时间复杂度为O(nlogn);对数最常出现的规律可概括为如下一般规律: 如果一个算法用常数时间O(1)将问题的大小削减为其的一部分(通常是二分之一),那么该算法就是O(logn).另一方面,如果一个算法用常数时间O(1)将问题的大小消减一个常数数量(如将问题减少1等等),那么这种sauna就是O(n)的。 折半查找简单引论问题 求x在数组T[]中的坐标,如果不存在x,则返回-1 方案一 思路:直接穷举,进行遍历,时间复杂度O(n),线性增长 代码: public static > int binarySearch1(T[] a, T x){ for(int i = 0;i < a.leng...阅读全文

博文 2019-04-04 09:53:31 www.allocmem.com

java.util.Date,java.sql.Date及java.sql.Timestamp

java.sql.Date及java.sql.Timestamp继承自java.util.Date ,三个类都可以使用getTime()进行互换,java.util.Date有无参构造方法获取当前时间,其余两个没有。Timestamp为时间戳,和sql.Date的精确度一样,但表示当前时间更加方便(另外在hibernate中使用idea自动生成表的pojo时,会把sql.Date写为Timestamp),部分示例如下: package test; import java.sql.Date; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; /** * C...阅读全文

博文 2019-04-04 09:46:14 www.allocmem.com

常用排序算法原理简析

前言 本文只作一些概念性说明,后续会整理每种排序算法的具体实现。个人知识和能力有限,搜集整理和理解可能不到位,如有错误,欢迎指正 插入排序原理 跑n-1趟,对于p=1到N-1趟,插入排序保证从位置0到位置p(数组也是从0开始计算)的数据是有序的,从后面每次拿一个数组往前面插,找到有序的位置(如此时51为被插入数,则在34到64之间)。需要使用两次for循环,时间复杂度为O(n^2) 希尔排序原理(缩减增量排序) 简单粗暴 计算效率取决于选择的缩减增量序列,只要序列最后最小的为1,任何增量序列都是可行的。最坏时间复杂度为n^2,而使用2^k-1的Hibbard增量序列的最坏运行事件为N^1.5 堆(优先队列)排序原理 堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节...阅读全文

博文 2019-04-04 09:53:38 www.allocmem.com

Flink Slot详解与Job Execution Graph优化 - 个人文章

TalkingData 440 Flink Slot详解与Job Execution Graph优化 flink 阅读约 18 分钟 前言 近期将Flink Job从Standalone迁移至了OnYarn,随后发现Job性能较之前有所降低:迁移前有8.3W+/S的数据消费速度,迁移到Yarn后分配同样的资源但消费速度降为7.8W+/S,且较之前的消费速度有轻微的抖动。经过原因分析和测试验证,最终采用了在保持分配给Job的资源不变的情况下将总Container数量减半、每个Container持有的资源从1C2G 1Slot变更为2C4G 2Slot的方式,使该问题得以解决。 经历该问题后,发现深入理解Slot和Flink Runtime Graph是十分必要的,于是撰写了这篇文章。本文内容分...阅读全文

博文 2020-02-04 09:37:49 SegmentFault 思否

项目管理最佳实践,企业如何进行有效的项目管理

前言:企业在划分项目时,可按照项目的复杂程度、管理范围等将项目分为三个级别,分别是企业级、部门级和小组级(与目标划分原则相同),然后将每一级的目标与项目对应起来。我们知道,企业制定的目标(OKR),一个目标(O)会有多个关键结果(KR),关键结果是衡量目标完成与否的标准,因此,每个项目的目标对应的应该是目标中的关键结果,当然,目标及关键结果的复杂程度不同,所以一个关键结果可能会对应多个项目。![image.png](https://img-blog.csdnimg.cn/20200107164453295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNz...阅读全文

OLAP中roll-up和drill-down和slicing?

拿沃尔玛来说,现在要进行OLAP分析,针对三个维分别是时间维,商品维和地点维,这三个维度抽象成图像就是一个立方体,也就是Data Cube,在时间维上是四个季度,在地点维上,是北京、洛杉矶、伦敦、东京、柏林等等,在商品维上是电子类、食品类、生活用品类,Data Cube中的每一个小立方体表示某个地点(比如北京),在某个时间(比如第一季度)在某类商品上(比如电子类)的销售额。 现在开始Rool-Up,就是将细度减少,比如你将地点扩大为北美洲、亚洲、欧洲(这是根据你原有的地点对应有哪些大洲来扩大的),现在每一个小立方体的含义就变成在某个大洲(比如亚洲)、某个时间(第一季度)、某类商品(电子类商品)的销售额。简单来说,Rool-UP类似对维度的汇总。 而Drill-Down就是将细度增加,比如我们...阅读全文

博文 2020-08-09 11:50:15 知乎

企业应该怎样选择项目管理软件?

项目管理通常涉及人、财、物的调配和管理。项目管理流程十分复杂,仅靠人工管理往往难以管理好。 因此,选择一个有效的工具来管理整个项目很有必要。 目前,市面上的项目管理软件繁多冗杂,良莠不齐,企业需根据自身情况选择项目管理工具,以提高效率,赢得市场竞争。 如果项目的复杂程度永远不超出项目经理或项目团队的经验水平和记忆容量,只靠他们的人工管理也能在项目发生事情时识别因果关系并追溯问题的源头。 但问题是,几乎所有与业务相关的项目其复杂程度,都能轻易超出项目经理或项目团队的经验水平和记忆容量限度,只是团队不自知而已。 所以才会有不少团队用了错误的准则来选择管理工具,导致工具不能在项目信息上及问题溯源上弥补团队的不足。 因此,在选择项目管理软件时,企业应从多方面考虑,确保选择到合适的项目管理工具。 一、...阅读全文

来插入排序、希尔排序是这样的

Hello,小伙伴们,大家好,我是才辰。今天和大家一起学习的是排序算法中的插入排序和希尔排序。为什么把这两个排序放在一起呢?这是因为这两种排序有一定的关联,希尔排序实际上是对插入排序的一种变形。还是老样子,我先总体上介绍一下算法的过程,接着以一个例子分步讲解,最后给出了详细的代码以及相关分析。插入排序插入排序,就和我们平时玩牌是一样的因为你想,我们在打牌的时候,是不是先把手里的牌由小到大排好,然后每摸到一张牌,就依照大小把它放在排在正确的位置。同样,插入排序也是如此。步骤:首先选取数组第二个元素,若小于数组第一个元素,则插入到第一个位置,否则保持不动;接着选取第3个元素,把它和左边第一个元素比较,如果其小于左边第一个元素,则继续与左边第二个元素比较,知道遇到不比它大的元素,然后插入到这个元素...阅读全文

博文 2021-09-02 03:36:45 知乎

Flink task和subTask_大数据私房菜的博客

Flink-Task、SubTask、并行度 ldc2013的博客 08-01 292 Task与SubTask 一个算子就是一个Task. 一个算子的并行度是几,这个Task就有几个SubTask 对应关系: 算子=Task 并行度=SubTask task是抽象概念,subtask是物力概念 Parallelism并行度 默认并行度--cpu核数 关键点 不同的并行度(subtask),肯定在不同的slot,但也可能在不同的taskmanager 一个流程序的并行度,可以认为就是其所有算子中算子并行度最大的并行度 数据传输模式: One-to-one:. 【白话Flink基础理论】Flink运行时(Runtime)架构(三)并行度&Task&SubTask&Slot&Flink中的并行剖...阅读全文

博文 2022-08-04 06:54:20 CSDN博客_flink subtask

Flink的Task与SubTask理解_黄土高坡上的独孤前辈的博客

文章目录 官网参考1.任务2.通过flinkUI可以看到 有几个框就是几个Task3.程序模型4.流的分类5.Operator Chains6.Task Slot (TM = JVM)7.获取整个算子的执行计划8.flink通过webUI的Jar包传到哪里去了 java.io.tmpdir=/tmp 官网参考 # https://ci.apache.org/projects/flink/flink-docs-release- 1.11/concepts/flink-architecture.html 1.任务 Task:任务 是一个阶段多个相同功能的subtask的集合 ==》 对比于spark中的taskSet SubTask:子任务 subTask是Flink中任务的最小单元,subta...阅读全文

博文 2022-08-04 07:00:13 CSDN博客_flink subtask

ElasticSearch 聚合分析 - 码农充电站

公号:码农充电站pro 主页:https://codeshellme.github.io ES 中的聚合分析(Aggregations)是对数据的统计分析功能,它的优点是实时性较高,相比于 Hadoop 速度更快。 1,聚合的分类 ES 中的聚合分析主要有以下 3 大类,每一类都提供了多种统计方法: Metrics:对文档字段进行统计分析(数学运算),多数 Metrics 的输出是单个值,部分 Metrics 的输出是多个值。 Sum:求和 Max:求最大值 Min:求最小值 Avg:求平均值 等 Bucket:一些满足特定条件的文档集合(对文档进行分组)。 Terms Range 等 Pipeline:对其它的聚合结果进行再聚合。 Avg bucket:求平均值 Max bucket:求最...阅读全文

博文 2022-04-20 13:00:08 博客园

Flink 中 slot ,task,并行度的详解及其高频面试题

点击上方蓝字关注一下吧 看完记得点个关注呦~,了解更多职场及大数据,人工智能,java等技术文章。 在了解slot、task、并行度相关概念和原理之前先看一下企业中与之相关的高频面试题×01高频面试题1.Flink的并行度了解吗?Flink的并行度设置是怎样的?2.任务并行度与slot之间的关系?3.Flink并行度设置优先级?4.并行的任务,需要占用多少slot?5. slot并行的条件?6. taskmanager与slot之间的关系?7.什么是slot共享,slot共享的好处?8.一个流处理程序,到底包含多少个任务? 接下来的介绍相信你会对这些问题有一个答案,当然文章最后也有对应的参考答案×02 概念解读taskmanager:Flink中每一个worker(TaskManager)都...阅读全文

博文 2022-08-04 07:04:07 墨天轮

flink taskmanager&slots&并行度&任务链&task分配详解 - 民宿

TaskManger与Slots Flink中每一个worker(TaskManager)都是一个JVM进程,它可能会在独立的线程上执行一个或多个subtask。为了控制一个worker能接收多少个task,worker通过task slot来进行控制(一个worker至少有一个task slot)。 每个task slot表示TaskManager拥有资源的一个固定大小的子集。假如一个TaskManager有三个slot,那么它会将其管理的内存分成三份给各个slot。资源slot化意味着一个subtask将不需要跟来自其他job的subtask竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。需要注意的是,这里不会涉及到CPU的隔离,slot目前仅仅用来隔离task的受管理的内存。...阅读全文

博文 2022-10-02 13:27:55 博客园

Elasticsearch 聚合数据结果不精确,怎么破?_铭毅天下的博客

1、实战开发遇到聚合问题 请教一个问题,ES 在聚合的时候发生了一个奇怪的现象聚合的语句里面size设置为10和大于10导致聚合的数量不一致,这个size不就是返回的条数吗?会影响统计结果吗?dsl语句摘要(手机敲不方便,双引号就不写了): aggs:{topcount:{terms:{field:xx,size:10}}} 就是这个size,设置10和大于10将会导致聚合结果不一样,难道是es5.x的bug吗? 以上是实战中的真实问题,基于这个问题,有了本篇文章。 本文探讨的聚合主要指:terms 分桶聚合。下图为分桶 terms 聚合示意图。 从一堆多分类的产品中聚合出 TOP 3 的产品分类和数量。TOP3 结果: 产品 Y:4 产品 X:3 产品 Z:2 2、前提认知:Elastic...阅读全文

博文 2022-07-12 06:05:41 CSDN博客

Cgroup的CPU资源隔离介绍&docker cpu限制_liukuan73的博客

http://www.tuicool.com/articles/Jniemin 这个链接主要介绍了cgroup中使用的三种cpu资源限制方式 cpuset隔离方式是以分配核心的方式进行资源隔离,可以提供的资源分配最小粒度是核心,不能提供更细粒度的资源隔离,但是隔离之后运算的相互影响最低。需要注意的是在服务器开启了超线程的情况下,要小心选择分配的核心,否则不同cgroup间的性能差距会比较大。cpuquota给我们提供了一种比cpuset可以更细粒度的分配资源的方式,并且保证了cgroup使用cpu比率的上限,相当于对cpu资源的硬限制。cpushares给我们提供了一种可以按权重比率弹性分配cpu时间资源的手段:当cpu空闲的时候,某一个要占用cpu的cgroup可以完全占用剩余cpu时间,...阅读全文

博文 2023-09-20 19:28:59 CSDN博客

这一次,彻底搞懂React的diff算法_51CTO博客_vue diff算法

在前端面试中,只要涉及到React框架,diff算法便是我们绕不开的话题,这次让我们来系统性的梳理diff算法,不再被这个知识点所困扰。 什么是diff算法? 在了解diff算法之前,我们要直到diff算法并非React独家首创,但是React针对diff算法做了自己的优化,使得diff算法可以帮助我们计算出Virtual Dom中真正变化的部分,并只针对该部分进行实际的DOM操作,而非渲染整个页面,从而保证了每次操作后页面的高效渲染。 传统diff算法 要想了解React的diff算法,我们首先要知道传统的diff算法是如何设计并实现的。 传统diff算法的时间复杂度 传统diff算法的时间复杂度是O(N^3),其中N是树中节点的总数,这样的时间复杂度意味着如果要展示1000个节点,就要执...阅读全文

博文 2023-09-13 14:29:38 blog.51cto.com

王者对决 佳能5D4与索尼A7R2画质对比(全文)_佳能 5D Mark IV_数码影像评测

产品:5D Mark IV(单机) 佳能 数码相机1画质王者对决 对于专业相机来说,画质无疑是消费者最为看中的地方,它直接关乎到所拍照片的最终质量。佳能5D Mark IV以及索尼A7R2都是目前市场上热销的专业级相机,相同的定位以及相似的售价往往让消费者在选购时难分伯仲。今天笔者就来详细的对比下这两台相机在画质上的表现,看看谁才是真正的画质“王者”。 “画质”其实是一个比较笼统的说法,如果对其进行细分,大致可以概括为以下四点,分别是:低感光状态下的细节表现、高感光下的控噪表现、过曝或欠曝下的宽容度表现、以及JPEG直出时的色彩表现。只有将这四点都做好,我们才能说这是一台画质优秀的相机。 在进行详细的对比之前,我们先来认识下即将出场的两位选手。EOS 5D Mark IV是佳能最新发布的专业...阅读全文

博文 2024-06-05 19:14:23 中关村在线

[第2季]OpenGL-自主高性能三维GIS平台架构与实现

![1.png](http://static.itsharecircle.com/240102/934a11c2a027a4577fe70e9d9ae40cf0.png) OpenGL没有提供着色器编译器,而是由显卡驱动来完成着色器的编译工作,也就是说,只要显卡驱动支持对GLSL的编译它就能运行,所以能够跨平台。而DirectX是由微软控制着色器的编译,就算用了不同的硬件,同一个着色器的编译也是一样,所以支持的平台只有微软自己的产品。 GPU全称是GraphicProcessing Unit--图形处理器,其最大的作用就是进行各种绘制计算机图形所需的运算,包括顶点设置、光影、像素操作等。GPU实际上是一组图形函数的集合,而这些函数有硬件实现,只要用于3D游戏中物体移动时的坐标转换及光源处理。...阅读全文

效率起飞!天翼云并行文件服务HPFS高效应对AI时代大模型训练存储挑战!

国内外AI大模型层出不穷,训练数据复杂程度更是呈指数级增加。如今,在万亿级参数时代,单个资源池已无法满足大模型训练场景中动辄PB级的数据存储量,对于企业来说,启用多个资源池构成的分布式存储势在必行。​为了应对AI大模型训练对数据存储的需求,天翼云推出并行文件服务HPFS(CT-HPFS,High Performance File Storage),旨在为AI时代提供高性能存储底座,助力企业构建基于云资源的、更高效的大型模型训练平台,实现大模型的连续训练。天翼云HPFS可通过分布式存储实现数据的并发读取,同时提供最高百万IOPS和百GBPS的吞吐能力,显著提升了数据的读取速度,从而大大提升GPU卡的利用率,为提升HPC和AI等场景的训练效率赋能。天翼云HPFS为AI场景的数据训练提供高并发、低...阅读全文

博文 2024-03-08 14:48:55 Tianyiyun

深入浅出分析LSM树(日志结构合并树)

零、前言最近在调研NoSQL数据库,发现RocksDB、LevelDB、HBase以及Prometheus等,其底层的存储引擎都是基于LSM树,于是决定花时间彻底吃透LSM树这一数据结构。不幸的是,在查阅资料学习的过程中,发现网上各种文章汗牛充栋、抄来抄去,不是文不对题就是不知所云。一气之下决定自己写一篇出来消消气,便有了这篇文章。。。PS:学了这么多数据结构,LSMTree应该是最年轻的一个,它在1996年被设计出来(属老鼠的),年纪比我还小~相比于B/B+树或者倒排索引,LSMTree采用了“疯狂到不顾一切”的干啥都磁盘顺序写的方案,赋予了它无与伦比的写吞吐量。一、LSM树数据结构定义查阅了一些资料,LSM树并没有一种固定死的实现方式,更多的是一种将:“磁盘顺序写” + “多个树(状数据...阅读全文

博文 2023-05-11 09:07:03 知乎

云数据库实现架构与设计的构想

本文分享自天翼云开发者社区《云数据库实现架构与设计的构想》,作者:不知不觉随着云计算技术的飞速发展,云数据库作为云计算的重要组成部分,其实现架构与设计日益受到开发工程师的关注。本文将从开发工程师的角度出发,探讨云数据库的实现架构,并提出云数据库设计的构想,以期为云数据库的发展提供参考。一、云数据库实现架构分布式架构:云数据库通常采用分布式架构,通过多个数据库节点协同工作,实现数据的水平扩展和高可用性。这种架构可以充分利用云计算资源,提高数据库的处理能力和容错性。虚拟化技术:云数据库利用虚拟化技术,将物理硬件资源抽象为虚拟资源,实现资源的动态分配和管理。这样可以提高资源利用率,降低运维成本,并为用户提供灵活可扩展的数据库服务。微服务化:云数据库采用微服务架构,将数据库功能拆分为一系列独立的服务...阅读全文

博文 2024-02-23 14:16:59 Tianyiyun

双栈网络使用什么技术实现总部网络能访问分部网络?

本文分享自天翼云开发者社区《双栈网络使用什么技术实现总部网络能访问分部网络?》,作者:SD万为了实现总部和分部之间的IPv4和IPv6互访,可以使用以下隧道技术:1、IPv4隧道技术:可以使用GRE(Generic Routing Encapsulation)隧道技术,在IPv4网络中隧道传输IPv6数据包。在总部和分部之间分别配置一个GRE隧道接口,并将IPv6数据包封装在IPv4数据包中进行传输。配置完成后,总部的IPv4地址就可以访问分部的IPv4地址。2、IPv6隧道技术:可以使用6to4、Teredo等IPv6隧道技术,在IPv4网络中隧道传输IPv6数据包。在总部和分部之间分别配置一个6to4或Teredo隧道接口,并将IPv4数据包封装在IPv6数据包中进行传输。配置完成后,总...阅读全文

博文 2024-04-30 11:11:21 Tianyiyun

Apache Flink:基于 Reactive Mode 的 Flink 自动扩容 › Coco's Mark

简介流式作业长时间运行过程中常常会经历不同流量负载的情况。流量负载会出现周期性的变化,如:白天与晚上、周末与工作日、节假日与非节假日,这些波动可能是突发事件或是业务的自然增长。虽然这些波动有些是可预见的,但是如果想要在所有场景下保证相同的服务质量,那么就需要解决如何让作业资源随着需求的变化而动态调整。 一个简单的衡量当前所需资源与可用资源是否匹配的方法是:计算当前负载与可用的 workers 数之间的面积。如下图所示,左图中分配了固定的资源量,可用看到:实际负载与可用的 workers 之间有很大的差距 —— 因此造成了资源的浪费。右图中展示了弹性资源分配的情况,红线与黑线之间的距离在负载的变化中不断的努力减小。 多亏了 Flink 1.2 引入的可扩展状态(rescalable state...阅读全文

博文 2024-10-17 10:56:28 coco-mark.github.io

遗传算法介绍

本文分享自天翼云开发者社区《遗传算法介绍》,作者:朱****洲遗传算法(Genetic Algorithm, GA)起源于对生物系统所进行的计算机模拟研究。它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,借鉴了达尔文的进化论和孟德尔的遗传学说。由于遗传算法是模拟自然规律的一种算法,它常用术语也都是用自然科学的名词来代替,主要有以下部分:1.个体:问题的一个解(无论可行)2.种群:问题的一个解的集合,包含多个个体3.染色体:个体以编码形式的存在方式4.基因:标识染色体的信息最小存在5.遗传:产生新个体的方式6.适应度:个体对应问题的解决能力遗传算法简单来说分为以下几个阶段:编码、生成初始种群、遗传操作、筛选。​图为遗传算法运用的流程图,其分为以下步骤:1.编码编码是体现遗传算法借鉴...阅读全文

博文 2024-10-22 15:03:29 Tianyiyun