
数据结构和算法
想静静的搬运工
这个作者很懒,什么都没留下…
展开
-
java基本加密算法
简单的java加密算法有:BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码)1. BASE64Base64是网络上最常见的用于传输8Bit字节代码转载 2016-12-28 17:36:44 · 381 阅读 · 0 评论 -
java实现二叉树查找树
二叉树(binary)是一种特殊的树。二叉树的每个节点最多只能有2个子节点:二叉树由于二叉树的子节点数目确定,所以可以直接采用上图方式在内存中实现。每个节点有一个左子节点(left children)和右子节点(right children)。左子节点是左子树的根节点,右子节点是右子树的根节点。 如果我们给二叉树加一个额外的条件,就可以得到一种被称作二叉搜索转载 2016-12-28 17:39:27 · 1492 阅读 · 1 评论 -
算法篇---桶式排序和基数排序
桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征:待排序列所有的值处于一个可枚举的范围之类;待排序列所在的这个可枚举的范围不应该太大,否则排序开销太大。排序的具体步骤如下:(1)对于这个可枚举范围构建一个buckets数组,用于记录“落入”每个桶中元素的个数;(2)将(1)中得到的buckets转载 2016-12-28 17:41:14 · 279 阅读 · 0 评论 -
java算法篇---插入排序和选择排序算法
插入排序假设我们输入的是 “5,1,4,2,3” 我们从第二个数字开始,这个数字是1,我们的任务只要看看1有没有正确的位置,我们的做法是和这个数字左边的数字来比,因此我们比较1和5,1比5小,所以我们就交换1和5,原来的排列就变成了“1,5,4,2,3 ”接下来,我们看第3个数字有没有在正确的位置。这个数字是4,它的左边数字是5,4比5小,所以我们将4和5交换,排列变成了 “1,4,5,2转载 2016-12-28 17:42:36 · 287 阅读 · 0 评论 -
java算法篇---银行家算法
银行家算法是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。package com.zc.manythread;import javax.swing.JOptionPane;/*一共有5个进程需要请求资源,有3类资源*/public class Bank转载 2016-12-28 17:44:50 · 559 阅读 · 0 评论 -
java排序算法-比较快速排序,冒泡排序,双向冒泡排序的执行效率
快速排序原理是找出一个元素(理论上可以随便找一个)作为基准(pivot),然后对数组进行分区操作,使基准左边元素的值都不大于基准值,基准右边的元素值 都不小于基准值,如此作为基准的元素调整到排序后的正确位置。递归快速排序,将其他n-1个元素也调整到排序后的正确位置。最后每个元素都是在排序后的正 确位置,排序完成。所以快速排序算法的核心算法是分区操作,即如何调整基准的位置以及调整返回基准的最转载 2016-12-28 17:46:38 · 2042 阅读 · 0 评论 -
一分钟了解负载均衡的一切
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游转载 2017-02-16 14:40:57 · 334 阅读 · 0 评论 -
【转】Spark知识体系完整解读
Spark简介 Spark是整个BDAS的核心组件,是一个大数据分布式编程框架,不仅实现了MapReduce的算子map 函数和reduce函数及计算模型,还提供更为丰富的算子,如filter、join、groupByKey等。是一个用来实现快速而同用的集群计算的平台。 Spark将分布式数据抽象为弹性分布式数据集(RDD),实现了应用任务调度、RPC、序列化和压缩,并为运行在转载 2017-04-01 09:52:18 · 2102 阅读 · 0 评论