
算法
文章平均质量分 76
nx188
亡羊补牢,笨鸟先飞
展开
-
java 二叉树/创建/先序/中序/后序
代码如下:package algorithm;import java.util.LinkedList;public class TwoForkTree { // private int[] array = {1,2,3,4,5,6,7,8,9}; // private char[] array = {'a','b','c','d','e','f','g','h','i'};原创 2016-03-29 21:50:19 · 359 阅读 · 0 评论 -
p2p,gossip,paxos,md5,大文件排序
1、p2p架构网络中的所有节点都是对等的,它们构成了一个环,节点之间通过P2P协议每秒钟交换一次数据,这样每个节点都拥有其它所有节点的信息,包括位置、状态等2、Gossip 协议3、Paxos算法讲解,非常精彩Proposer提出议题 Acceptor初步接受 或者 Acceptor初步不接受 如果上一步Acceptor初步接受则Proposer再次向Acceptor确认是否最...原创 2019-09-19 22:50:55 · 322 阅读 · 0 评论 -
地址围栏
1、解释1“围栏”就是进入某个范围内,检测到并执行某些操作,出了这个范围,检测到并执行某些操作。只不过判断条件不一样,地理围栏就是根据我们画出的位置信息来触发,比如:进入区域内禁用摄像头,出了区域就打开摄像头。目前,我们使用的百度定位服务,会根据GPS、基站和IP进行自动定位,选取一种最精确的作为结果,根据官方的说明,如果开了GPS,误差最小在10m左右,如果什么都不开,误差在100m左右...原创 2019-09-19 22:47:32 · 1051 阅读 · 0 评论 -
基站定位
基站定位的[1]大致原理为:移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(Time of Arrival,到达时刻)或TDOA(Time Difference of Arrival,到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,...原创 2019-09-19 22:47:04 · 2819 阅读 · 0 评论 -
算法 剑指Offer 面试题32 从1到n整数中1出现的次数
解释:比如1~12, 1 出现了5次常规思路:遍历1~n,每个数的每一位通过曲余判断是否等于1,这样时间复杂度是O(nlogn),而且是这么多次取余运算,计算量很大思路:参考代码中注释,一位一位计算1的个数,每一位判断大于1,等于1,等于0,做相应不同的计算时间复杂度:O(logn),n 是数字,logn 是数字的位数java 代码如下:package algorithm;原创 2016-06-04 10:20:44 · 402 阅读 · 0 评论 -
java 堆排序
复杂度最坏: nlgn 代码中有标注和top n 问题关系:用的堆模型,和top n 问题用的模型相同http://blog.youkuaiyun.com/nx188/article/details/51218846代码:package AlgorithmTopK;public class Heapsort { //建立小根堆 super.createHeap(int inp原创 2016-04-26 18:35:54 · 329 阅读 · 0 评论 -
算法 把二叉查找树转变成排序的双向链表
记住: 树的问题都递归概念:双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。二叉排序树或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不原创 2016-07-11 21:01:44 · 453 阅读 · 0 评论 -
java 实现N个女人过桥问题
题目描述:N个女人过桥,夜间有一火把,每次最多过两个,必需带火把,过桥速度不一样。过去后必须回来一个人,把火把带回来。要求女人都过去,实现最小过桥时间。如果4个女人过桥,时间为1,2,5,10,那么最小时间是17。思路:在未过桥中选最少时间的两个人过桥,当过桥后选最少时间的人返回,此时火把交给返回的人,同时对己过桥的人进行统计,当还有三人未过桥时(包含返的人),让时间最大的两个原创 2016-05-14 17:15:00 · 2203 阅读 · 0 评论 -
剑指offer 面试题14 把数组所有偶数放在奇数后面
两种办法:1.。O(n*n)的方法2.。O(n)的方法代码如下:package algorithm;public class Move2NumberAfter { /** * move2NumberAfter 是O(n*n)的办法 * @param array */ public static void move2NumberAfter(int arra原创 2016-06-07 00:09:37 · 411 阅读 · 0 评论 -
java 复制复杂链表
思路:代码分三个步骤:第一步 CloneNodes() ,第二步ConnectSiblingNodes(),第三步ReconnectNodes(),每步作用如图1:图 1 复制链表思路链表结构如图:图 2 原链表结构代码如下:两个类ComplexNode 类,链表节点类package AlgorithmComplexLinkedLis原创 2016-04-20 20:41:30 · 400 阅读 · 0 评论 -
树的广度深度优先遍历
4个类,其中stack / queue 是借用的,Stack 类package AlgorithmGraph;/** * 栈,遵循先进后出的原则,用来保存元素 * * @author jalo * */ public class Stack { private int[] st; private int top;原创 2016-04-19 21:39:30 · 532 阅读 · 0 评论 -
java 汉诺塔问题
汉诺塔:package HanoTower;/** * 目的:A->C,B是中介 * * 思想:想把n 从A->C,需要把n-1从A->B,再把n-1从B->C,中间将N放在C * 比如将2从A->C,那么将1放在B,(将2放在C),将1放在C, * @author jalo * */public class HanoTower { public static voi原创 2016-05-10 14:57:21 · 466 阅读 · 0 评论 -
java 代码实现 Top N 问题
思路:用小根堆来实现,时间复杂度是 O(nlgK),而且内存消耗是 K。时间复杂度消耗在代码中aaa 处 如果用海量数据排序,内存放不下,得用归并排序,最好最坏平均都是 O(nlgn)代码如下: package AlgorithmTopK;public class原创 2016-04-22 11:49:53 · 2853 阅读 · 0 评论 -
链表 最基本插入删除查找
java 代码如下:package algorithm;public class LinkedList { private class Data { public Object obj; public Data next; public Data(Object obj) { this.obj = obj; next = null; } } priv原创 2016-03-28 22:20:06 · 424 阅读 · 0 评论 -
大数相减
题目:长度小于100 的两个数,默认第一个数比第二个数大,求差代码如下:package BigNumberSubtraction;import java.util.Scanner;public class BigNumberSubtraction { public String subMethod(String a, String b) { int aa[] = ne原创 2016-04-26 16:43:59 · 372 阅读 · 0 评论 -
测试概念
1.冒烟测试:简单的启停,加上一两个核心 caseregression test : 回归测试unit test : 单元测试,测某个函数或某个类junit : 开发写的单元测试case单元测试: 一个是函数测试,就是最低级别的测试就是单元测试单步调试: 另外一个是和单元测试相配合使用的静态分析动态分析。静态分析就是读代码,动态分析就是单步调试测试去改code 是很越...原创 2019-09-19 23:03:23 · 264 阅读 · 0 评论