自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

忧郁王子的专栏

伟大的意大利,伟大的罗伯特-巴乔

  • 博客(335)
  • 资源 (13)
  • 收藏
  • 关注

原创 最优解-背包问题

由dp[i-1][j-weight[i]]推出,dp[i-1][j-weight[i]] 为背包容量为j-weight[i]的时候不放物品i的最大价值,那么dp[i-1][j-weight[i]] + value[i] (物品i的价值),就是背包放物品i得到的最大价值。:由dp[i-1][j]推出,即背包容量为j,里面不放物品i的最大价值,此时dp[i][j]就是dp[i - 1][j]。最终,在dp[i][j]最后一个单元格里(即最后一行最后一列所在位置)就存放着该背包所能装下的最大价值。

2024-01-19 19:13:31 481

原创 最优解-最长公共子序列

最长公共子序列(Longest Common Subsequence,LCS)即求两个序列最长的公共子序列(可以不连续)。比如3 2 1 4 5和1 2 3 4 5两个序列,最长公共子序列为2 4 5 长度为3。从右下角开始,如果有dp[i][j]==dp[i-1][j-1]+1则往左上走一格。=b[j], 则 L[i][j]=max (L[i][j-1],L[i-1][j])若a[i]=b[j], 则 L[i][j]=L[i-1][j-1] +1。即:相同的取左上加1,不同取上和左中的最大值。

2024-01-19 15:24:19 390

原创 最优解-最长递增子序列

找到比3小的数字对应的dp[i]最大值(也就是最长),然后+1,就是dp[5]的值。动态规划的核心:array[i+1] = k,既然是递增子序列,我们只要找到前面那些结尾比k小的子序列,然后把 k 接到最后,就可以形成一个新的递增子序列,而且这个新的子序列长度加一。定义数组dp,dp[i] 表示以 array[i] 这个数结尾的最长递增子序列的长度。在一个给定的数值序列中,找到一个子序列,使得这个子序列元素的数值依次递增,并且这个子序列的长度尽可能地大。比如数组:1,4,3,4,2。

2024-01-16 17:32:29 499

原创 分治法-最大值和最小值

最适合在大数据中,通过这种方法求最大和最小值可以大大减少比较次数,比如一种直接的算法是扫描一遍A序列,用两个标志位max和min分别表示最大值和最小值元素此种方法的元素比较次数是2n-2,但是利用分治策略就可以将元素比较次数减少到(3n)/2-2。3、将所有子数组或子列表的最大值和最小值进行比较,得到整个数组或列表的最大值和最小值。1、将一个数组拆分成左右两个数组,直到分解为不可分的一个数组元素。2、分别找出每个子数组或子列表的最大值和最小值。求最大值和最小值得基本思路和归并排序很相似。

2024-01-16 11:13:03 599

原创 分治法-快速排序

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。3、将right指向的数据和key作比较,大于则指针移动,继续比较,小于则将和left指针指向的值进行替换。4、将left指向的数据和key作比较,小于则指针移动,继续比较,大于则将和right指针指向的值进行替换。2、设两个指针left和right,其中left指向数列的左端,right指向数列的右端。

2024-01-12 19:21:44 496

原创 分治法-归并排序

基本思路:将待排序元素分成大小大致相同的两个相同子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成要求的排好序的集合。

2024-01-12 11:15:10 318

原创 一位蜗牛程序员十五年工作总结-2023

2023年的工作在过去几年的工作中是最满意的。抓住了几件重要的事情并且达到了年初设定的目标。团队也是多次在部门拿到B的成绩,同时做的事情直接转化为专利,为团队成员创收。2023年的工作我感觉有一下几点工作心得可以总结出来1、如何脱离琐碎的工作,抓住几个核心工作,只对最终的成果负责,而不是过程或则苦劳。我们时常会被日常琐碎的和目标无关的,简单重复但是自己感觉挺忙的事情而迷惑。每天忙忙碌碌,然后还挺感动自己。实际上如果和目标无关,这些事情除了感动自己毫无益处。2、如何量化目标?

2024-01-02 15:56:30 422

原创 分治法-汉诺塔问题

汉诺塔问题实质是把移动n个盘子的问题转化为移动n-1个盘,依据该原理,层层递推,即可将原问题转化为解决移动n -2、n -3…3、2,直到移动1个盘的操作,而移动一个盘的操作是可以直接完成的。至此任务真正完成了。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。将上面的n-1个盘子从A柱子移动到B柱子(借助C柱子)当只有一个盘子时,直接将盘子从A柱子移动到C柱子即可。将B柱子上的n-1个盘子移动到C柱子(借助A柱子)将最底下的一个盘子从A柱子移动到C柱子;

2023-12-20 15:21:18 47

原创 分治法-斐波那契数列

斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。

2023-12-20 10:35:26 72

原创 分治法-二分查找

二分查找(binary search algorithm)是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找。将一个难以直接解决的问题分割成规模小的问题,然后分而治之。Array[N]数组存储N个数,这N个数从小到大排序,一个数,即如果找到该数,则输出位置,否则输出-1。N,表示有N个元素,M,表示要查找的数。

2023-12-19 19:05:22 62

原创 5大算法策略

五大算法策略,分治发,动态规划,贪心算法,回溯法,分支限界法

2023-12-19 17:28:58 78

原创 引入geographiclib类来计算距离,周长和面积的方法

geographiclib类计算长度,周长,面积的方法

2023-12-14 15:08:02 165

原创 一位蜗牛程序员十四年工作总结-2022

一年一总结,发现问题和弊端,帮助提升和成长。。。

2023-07-28 10:39:45 117

原创 JTS-Distance常用操作

JTS-Distance常用操作,球面距离计算,点到线段垂足、垂线、最短距离计算

2023-07-27 17:18:24 571

原创 JTS-Angle角度类

JTS-Angle 常用操作

2023-07-27 17:08:49 368

原创 一位蜗牛程序员十三年工作总结-2021

对过去一年的总结,以及下一年的规划,每一年的收获是否自己还满意!!!!

2022-05-30 11:59:04 1103

原创 Spark-Core算子

算子分类1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。2)Action 行动算子:这类算子会触发 SparkContext 提交 Job 作业。Action 算子会触发 Spark 提交作业(Job),并将数据输出 Spark系统。1.输入:在Spark程序运行中,数据从外部数

2021-04-29 10:29:07 339

原创 Spark-基本框架和基本原理

框架执行模式Spark 的执行模式有 local、Yarn、Standalone、Mesos 四类。后面三个分别有 cluster 和 client 二种。client 和 cluster 的区别就是指 Driver 是在程序提交客户端还是在集群的 AM 上。 比如常见的 Yarn-cluster 模式如下图所示:驱动(Driver): 在驱动程序中,通过SparkContext主导应用的执行,SparkContext可以连接不同类型的Cluster Manager(Standalone、YARN

2021-04-23 18:09:40 273

原创 Scala常用操作

(1)小括号()用来表示优先级,传入函数参数序列,以及传入容器的下标或key。(2)中括号[]用来表示容器的元素的数值类型。(3)大括号{}用来划分作用域,{}的返回值为最后一个语句的值。(4)句点符号.表示方法,可以用空格代替。(5)冒号:用来说明变量的数据类型。(6)=>用来表示匿名函数的映射关系。(7)->用来指定映射Map中的键值关系。(8)<-用来指定for表达式的迭代器。(9)下划线_在Scala中被用作占位符表示匿名函数参数或作为引入package的通配符。

2021-04-16 19:34:52 538

原创 一位蜗牛程序员十二年工作总结-2020

上一年(2020)的总结工作2020年,大数据上云成为重要任务,从5月到10月,上云方案,上云任务梳理,上云任务的迁移和验证。在不完全影响业务的情况下,顺利从自建大数据平台切换到阿里云,同时借助阿里云的大数据生态,任务的出错和延迟大大降低。使用OKR(目标-关键结果),通过OKR来评估研发的产出和成果读书-3本老人与海(完成)\color{red}老人与海(完成)老人与海(完成)人类简史(完成)\color{red}人类简史(完成)人类简史(完成)人口原理(完成)\color{red}人口原理

2021-04-11 22:14:12 211

原创 sqoop数据导入和导出

sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。sqoop import 导入–connect jdbc:mysql://127.0.0.1:3306/$db_name\ 连接数据库–username root\ 数据库用户名–password root\ 数据库密

2021-01-18 10:07:49 495

原创 Hive-性能优化

Hive 优化主要解决几个问题###一、效率低下的原因:1、数据倾斜2、关联操作,job数太多3、小文件太多,导致map性能差数据倾斜是指,在数据量大的情况下,效率较低。比如count(distinct)是按group by 字段分组,按distinct字段排序,一般这种分布方式是很倾斜的。举个例子:比如男uv,女uv,像淘宝一天30亿的pv,如果按性别分组,分配2个reduce,每个reduce处理15亿数据。有数据倾斜时进行负载均衡,set hive.groupby.skewindata,当

2020-07-01 11:24:12 718

原创 Hive-UDF函数使用

UDF函数:UDF(User-Defined Functions)即是用户定义的hive函数。hive自带的函数并不能完全满足业务需求,这时就需要我们自定义函数了开发自定义UDF函数需要继承’org.apache.hadoop.hive.ql.exec.UDF’类,并实现evaluate函数实现sha256加密的UDF函数package com.encryption.udf;import org.apache.commons.codec.digest.DigestUtils;import org.

2020-06-20 16:11:43 545

原创 Hive-创建表的几种方式

–加载本地文件创建内部表hive -e "use test_bigdata;drop table data_result;CREATE table data_result(c1 String)ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’;LOAD DATA LOCAL INPATH ‘data_id.txt’ INTO TABLE data_result;"–创建外部表hive -e "use test_bigdata;

2020-06-20 13:52:15 1936

原创 一位蜗牛程序员九年工作总结-2016

上一年(2016)的总结过去的2016年,前半年打了半年酱油,做了几个失败的项目,比如基于交通小区的路况推荐系统和ETA(Estimated Time of Arrival)计算两点之间预计到达时间。这两个项目最后都没有产品化。 开始做完全没有经验,前期花了大量的时间在分析,验证,测试上面。当然工作不是白做,也是积累了一些经验。过了十一以后,换了一个新团队,工作基本趋于稳定,主要精力在货车轨

2020-06-13 14:05:04 829

原创 一位蜗牛程序员八年工作总结-2015

上一年(2015)的总结项目基于Spring + Mybatis 的成熟框架 基于微信公众号的定制开发大数据路况预测平台,接入实时数据,提供未来两小时的路况预测,以及给算路模块的权值标定。 ETA(Estimated Time of Arrival) 计算两点之间预计到达时间。下一年(2016)的目标工作基于交通小区的路网数据处理和存储。

2020-06-13 14:04:29 821

原创 一位蜗牛程序员十一年工作总结-2018

上一年(2018)的总结工作2018年注定是繁忙的一年,4月份开始接受数据仓库建设,在完全没有经验的情况下,经过前三个月的探索,试错。对数据仓库建设有了一点感觉。通过学习,初步掌握了维度建模理论,形成数据仓库建设的一套方法。在数据核心指标开发方面也形成了一套完善的流程,包括定义,设计,评审,开发,验收。只有在完善,成熟的指标开发流程下才能保证指标结果的准确性和可靠性。2018年的主要成绩...

2020-06-13 14:03:50 407

原创 一位蜗牛程序员十年工作总结-2017

上一年(2017)的总结过去的2017年,刚刚开春,部门开始调整,同事陆陆续续离职。至少一个月无所事事,毫无目标。期间学习了scala,spark同时就是和同事交接工作。 五一以后团队稳定,基本上正式步入正轨,然后优化了行政区划匹配和开发了道路匹配。 十月以后项目增加,各业务部门需求增加,主要精力集中在需求分析,和部门沟通以及进度把控。同时对公司的大数据业务也是有了深入的了解。 写程序的...

2020-06-13 14:02:15 1340 2

原创 一位蜗牛程序员十一年工作总结-2019

上一年(2019)的总结工作2019年,构建公司级别的OneData数据体系,接入11个业务线的数据,打造了一个分层结构清晰,数据维度全面的公共数据体系,清洗了车辆静态数据,使车辆静态数据的字段准确度和覆盖度大幅度提升。团队人员从最开始的2人,扩大到6人。在任务分配,时间管理,和业务沟通上面面临很大挑战,沟通技巧需要进一步提高。读书-10本把时间当作朋友(完成)\color{red}把时间当作朋友(完成)把时间当作朋友(完成)财富自由之路Spark技术学习和实践心理学-梦的解析心

2020-06-13 14:00:01 387

原创 《Effective in java》 读书笔记

第二章 创建和销毁对象 第一条 考虑使用静态工厂方法(static factory method)代替公有的构造方法客户需要得到一个类的实例方法有二。提供一个公有的构造函数,或者是使用静态工厂方法。静态工厂方法是一个静态的方法它返回的是一个类的实例。好处:1.容易阅读 2.不要求重新创建一个新对象。保证了单态(singleton),使非可变类

2020-06-06 13:39:19 1980

原创 Linux-文本操作AWK和SED

AWKawk是一个强大的文本分析工具,简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 。awk处理过程: 依次对每一行进行处理,然后输出。$0 表示整个当前行$1 每行第一个字段NF 字段数量变量NR 每行的记录号,多文...

2019-03-15 17:17:48 754

原创 Java常用命令

jmapjdk安装后会自带一些小工具,jmap命令主要用于打印指定Java进程的共享对象内存映射或堆内存细节。jmap命令可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等。JVM内存大部分新对象在Eden Space上分配,当Eden Space满了,则要用到Survivor Sp...

2019-01-07 20:06:53 4526

原创 Linux-comm命令

comm命令可以用于两个文件之间的比较,前提是先对两个文件进行排序 准备文件1.txt和2.txt[h_chenliling@vm6-sj1-pro-had-32-107 ~]$ cat 1.txtabcdef[h_chenliling@vm6-sj1-pro-had-32-107 ~]$ cat 2.txt defghi[h_chenliling...

2018-09-01 10:24:23 2116

原创 2018中国新经济

左侧是增长点,右侧是风险 现代化强国三个指标哦,在世界拥有金融话语权,拥有技术话语权,祖国统一

2018-04-09 17:14:01 574

原创 Hadoop-Python实现Hadoop Streaming分组和二次排序

分组(partition)Hadoop streaming框架默认情况下会以’/t’作为分隔符,将每行第一个’/t’之前的部分作为key,其余内容作为value, 如果没有’/t’分隔符,则整行作为key;这个key/tvalue对又作为该map对应的reduce的输入。 -D stream.map.output.field.separator 指定分割key分隔符,默认是/t -D

2018-01-10 18:26:07 4277 2

原创 Hadoop-SecondarySort

MapReduce框架对处理结果的输出会根据key值进行默认的排序,这个默认排序可以满足一部分需求。为了满足复杂的需求需要Hadoop二次排序Secondary Sort。过程在map阶段,使用job.setInputFormatClass定义的InputFormat将输入的数据集分割成小数据块splites,同时InputFormat提供一个RecordReder的实现。 他提供的

2018-01-10 18:25:13 601

原创 Hadoop-MUnit

MRUnit是一款由Couldera公司开发的专门针对Hadoop中编写MapReduce单元测试的框架。主要引入mrunit,mockito-all,junit三个类库。POM.xmldependency> groupId>junitgroupId> artifactId>junitartifactId> version>4.8.2version>

2018-01-10 18:24:12 530

原创 Hadoop-Streaming

Hadoop Streaming提供了一个便于进行MapReduce编程的工具包,使用它可以基于一些可执行命令、脚本语言或其他编程语言来实现Mapper和 Reducer,从而充分利用Hadoop并行计算框架的优势和能力,来处理大数据Hadoop Streaming原理mapper和reducer会从标准输入中读取用户数据,一行一行处理后发送给标准输出。Streaming工具会创建Ma

2018-01-10 18:22:59 672

原创 Hadoop集群常见的错误

时间不同步引起的错误运行MapReduce时出现这种错误,是由于集群中没有设置时间同步(设置时间同步参照http://download.csdn.net/download/cdl2008sky/9381519)15/04/21 15:30:08 INFO mapreduce.Job: Task Id : attempt_1429584224671_0003_m_000007_1, St

2018-01-10 18:17:15 1576

原创 Hadoop集群内存优化

MapReduce map task 和reduce task 数量设置规则 1、map task的个数=输入文件总大小/分片尺寸。也就是说分片尺寸越大,map task的个数就越少=>系统执行的开销越小,系统管理分片的开销越小。 2、网络传输开销,如果分片太大以至于一个分片要跨越多个HDFS块,则一个map任务必须要由多个块通过网络传输,所以分片大小的上限是HDFS块的大小。 3、redu

2018-01-10 18:16:18 1048

Hadoop 2.5.2安装和部署

从0开始一步一步安装和部署Hadoop 2.5.2

2015-12-29

Lucene研究,Lucene 读书笔记

一、 全文检索的基本概念 (1)、数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等。 (2)、索引(Index):将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。

2011-08-17

Maven简易教程,maven 自动构件,自动测试,自动发布

maven 自动构件,自动测试,自动发布

2011-08-17

Java 操作World

POI本来相对就不稳定,而且操作word功能较弱.而且操作Word的例子很少,读写excel的倒是蛮多的 。jacob是个不错的选择,也就是java-com桥

2010-07-29

Java 调用C/C++程序

JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。   JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

2010-07-29

飞鸽,ipmsg.exe局域网工具

比较好的局域网工具,聊天,传送文件 ipmsg.exe

2008-11-05

sqlserver sp4补丁

sqlserver sp4补丁 microsoft SqlServer 200 sp4

2008-11-05

jad Java反编译工具

不错的java反编译工具 jad HashMap.class

2008-11-05

js校验库validator

js通用的校验库 常用严重,邮箱,电话,身份证,字符,数字,自定义

2008-11-05

effective java

effective java读书笔记 (1) Object 通用方法(equals(),hashCode(),toString(),clone(),finalize()) (2) 类和接口 (3) 方法 (4)通用设计方法 (5) 异常

2008-11-05

J2ME编程入门PPT

J2ME编程基础 配置 MyEclipse 中进行J2ME开发 J2ME 数据库开发 WAP 基础开发

2008-09-26

JMeter 压力测试详解PPT

众多类型的软件测试中,压力测试正是以软件响应速度为测试目标,尤其是针对在较短时间内大量并发用户的访问时,软件的抗压能力。这次共同学习压力测试工具JMeter,简单介绍了如何使用它来完成常用的压力测试:Web 测试、数据库测试和 JMS 测试。

2008-09-26

软件工程.pdf

软件工程讲述“软件开发” 和做“程序员” 的道路

2008-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除