- 博客(42)
- 收藏
- 关注
原创 最短路径算法比较(Dijkstra、Bellman-Ford、SPFA)及实现(Java)
单源最短路径算法使用场景时间复杂度原理异同伪代码Dijkstra从单源出发,到所有结点的最短路,适用于有向图、无向图(不能有负权环,且不能有非负权值的边)O(V^2),如果使用优先队列,则可以将复杂度将为O(|E|+|V|*|lg|V|),时间要低于Bellman-Ford算
2015-04-06 11:09:34
1921
原创 网络层学习笔记
一、学习内容a) 两种用于构造网络层分组交付的方法,即数据报模式和虚电路模式,并且理解编址在传递分组到目的主机所起的重要作用b) 对网路层的转发功能和路由功能做重要区别,转发涉及分组在单一的路由器中从一条入链路到一条出链路的传送,路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源目的结点所采用的路径。c) 为了深入分组转发,我们将学习IP、NAT、IPV
2015-04-06 10:54:07
1124
原创 链路层学习笔记
Abstract:在链路层的讨论中,我们将看到两种截然不同类型的链路层信道,第一种类型是广播信道,这种信道用于连接有线局域网、卫星网、和混合光纤同轴电缆接入网中的多台主机,因为许多主机有相同的广播信道连接,需要所谓的媒体访问协议(MAC)来协调传输,在某些场合,可以使用中心控制器(交换机)来协调传输。第二种类型的链路信道是点对点通信链路,如点到点协议(PPP)一、链路层提供的服
2015-04-06 10:42:14
878
原创 ZOJ1003
On every June 1st, the Children's Day, there will be a game named "crashing balloon" on TV. The rule is very simple. On the ground there are 100 labeled balloons, with the numbers 1 to 100. After t
2015-03-30 22:52:21
731
原创 常见数据结构总结
一、线性结构线性表 1.线性表的顺序表示,如:数组 2.线性表的链式表示 - 单向链表 - 双向链表 - 循环链表栈和队列 栈和队列也是线性表,但是是属于操作受限的线性表1.单向链表举例public class Node { Node next =null; int data; public Node(int d){ dat
2015-03-13 00:31:57
626
原创 java求最小公倍数和最大公约数
public class T7 { public static void main(String[] args) { System.out.println(minGongBei(3, 4)); System.out.println(maxGongYue(50, 25)); } //求最大公约数 public static int maxGongYue(int m,int n){
2015-03-03 16:09:04
812
原创 杨辉三角-java
package chp10;import java.util.Scanner;public class YangHui { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int C[][]=new int[n+1][];
2015-02-11 16:04:32
663
原创 选择不相交区间-java实现
题目:数轴上有n个开区间(ai,bi),选择尽量多个区间,使得这些区间两两没有公共点。所以我们可以先对齐排序,因为输入是随机的。假设每个区间表示为(x,y)我们可以选择按照x排序所有区间,也可以选择按照y来排序所有区间。而不管选择哪一个来排序,其原理和本质都一样,都是为了方便操作,将其有序化。我们这里选择按照y来排序,排序完后有y1 现在我们讨论x1 x2 ....当x1 >
2015-02-11 10:03:48
1037
原创 递归学习(一)--判断回文字符串
递归的思想:将大问题分解成小问题去解决使用递归的必需条件可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式存在一种简单情境,可以使递归在简单情境下退出ps:在几乎所有情况中,递归函数都开始于关键字 if 。因为递归是将问题分解,但是必须要有一个临界的条件得以退出程序。递归判断一个字符串是否是回文串:package chp7;/** * 递归判断字
2015-02-07 10:44:58
1744
原创 子集生成(二进制法)-java实现
给定子集S,如{0,1,2,...n-1}:从右往左第i位表示元素i是否在集合S中。package chp7;/** * 生成子集 * @author administrator * */public class BinaryMethod {public static void main(String[] args) { //输入集合S,求S的所有子集 int S[]
2015-02-07 08:55:10
1193
原创 双基回文数-JAVA实现
如果一个正整数n至少在两个不同的进位制b1和b2下都是回文数(2输入:1600000输出:1632995package chp7;import java.util.Scanner;public class SJHuiWen { public static void main(String[] args) { Scanner in= new Scanner(System.i
2015-02-06 21:54:16
571
转载 java实现进制转换
计算机中采用的是二进制,一个数字可以用任意进制表示。关键技术剖析:v Java中在声明数字时默认采用的是十进制,可以在数字前加上符号表示数字采用八进制【前面加0(零)】或者十六进制【前面加上0x(零x)】。v Java的整型封装类Integer和Long提供toString(int i,int radix)静态方法,可以将一个任意进制的整数转换为其他进制的整数。v 使用Intege
2015-02-06 21:33:39
926
原创 《算法入门经典》-最大乘积(java实现)
输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,应该输出-1(表示无解).1输入:32 4 -352 5 -1 2 -1输出:820package chp7;import java.util.Arrays;import java.util.Scanner;import java.util.Stack;/
2015-02-06 21:23:08
1547
转载 UVA572(C&JAVA)
#include#include#define MAXN 105int map[MAXN][MAXN];int n,m;void dfs(int i,int j){ if(!map[i][j]) return; map[i][j]=0; dfs(i+1,j); dfs(i-1,j); dfs(i-1,j-1); dfs(i-1,j+1
2015-02-06 20:32:02
575
转载 uva 548
#include#include#include#includeusing namespace std;const int MAXN = 10005;int inOrder[MAXN], postOrder[MAXN], nIndex;class Node{public: int data; Node *left; Node *right;};int
2015-02-06 17:00:34
522
原创 java实现二叉树及遍历操作
import java.util.Scanner;public class BinaryTree { private static Node root=null; private class Node{ Node left; Node right; int value; public Node(int value){ this.value=value; lef
2015-02-06 11:37:03
586
转载 UVAOJ 127-"Accordian " Patience | java实现
Time limit: 3.000 seconds限时:3.000秒 Problem问题You are to simulate the playing of games of "Accordian" patience, the rules for which are as follows:模拟玩一个“手风琴”纸牌游戏,规则如下:Deal cards one by one
2015-02-06 08:00:46
621
原创 Linux之bc实现进制转换
bc计算器,使用ibase,obase来实现进制的转换:i-input,o-output10进制转2进制: echo "ibase=10;obase=2;324" | bc (输入是10进制,输出是2进制,要转换的数字是324)输出:10100010016进制转2进制: echo "ibase=16;obase=2;FF" | bc (输入是16进制,输出是
2015-02-03 15:41:02
1004
转载 java精度丢失问题
一. 精度 举例:double result = 1.0 - 0.9;这个结果不用说了吧,都知道了,0.09999999999999998float和double类型主要是为了科学计算和工程计算而设计的。他们执行二进制浮点运算,这是为了在广泛的数字范围上提供较为精确的快速近似计算而精心设计的。然而,它们并没有提供完全精确的结果,所以我们不应该用于精确计算的场合。float和doub
2015-02-03 10:30:04
1618
转载 C语言的输入输出函数
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf(const char *format, arg_list)scanf主要从标准输入流中获取参数值,format为指定的参数
2015-02-01 14:29:32
664
转载 GDB调试工具的使用
GDB的命令概貌———————启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查看,如下所示: /home/hchen> gdb GNU gdb 5.1.1 Copyright 2002 Free Software Foundation, Inc. GDB is free softw
2015-02-01 08:12:58
502
原创 Linux-FACL
FACL:Filesystem Access Control List利用文件扩展保存额外的访问控制权限访问权限优先级:owner-->facl,user-->Group-->facl,group-->othersetfacl-m: 设定u:UID:permg:GID:permd:u:UID:permd:g:GID:perm 加个d,就是对目录及
2015-01-29 13:32:29
548
原创 Linux-特殊权限SUID
特殊权限passwd:seg:/usr/bin/passwd,因为普通用户也需要权限修改密码如何理解SUID呢?1、新建一个用户hadoop2、切换至新用户,然后执行cat /etc/shadow3、然后切换至管理员,chmod u+s /etc/cat4、然后切换至新用户,再执行cat /etc/shadow就可以执行了,此时cat的执行用户不是hadoo
2015-01-29 13:28:01
538
原创 Linux-文件查找
grep, egrep, fgrep: 文本查找文件查找:locate:非实时,模糊匹配,查找是根据全系统文件数据库进行的;# updatedb, 手动生成文件数据库速度快find:实时精确支持众多查找标准遍历指定目录中的所有文件完成查找,速度慢find 查找路径 查找标准 查找到以后的处理运作查找路径:默认为当前目录查找标准:默
2015-01-29 13:26:00
526
原创 vim学习
vim编辑器文本编辑器,字处理器ASCIInano, sedvi: Visual Interfacevim: VI iMproved全屏编辑器,模式化编辑器vim模式:编辑模式(命令模式)输入模式末行模式模式转换:编辑-->输入:i: 在当前光标所在字符的前面,转为输入模式;a: 在当前光标所在
2015-01-29 13:24:45
711
原创 Linux-bash脚本编程
静态语言:编译型语言强类型(变量)必须先编译完成后,才能使用如:C、C++、JAVA、C#动态语言:解释型语言解释完一条就可以执行一条,边解释边执行如:PHP、shell(面向过程)、python(面向对象)、perlshell:弱类型编程语言强类型:变量在使用前,必须实现声明,甚至还需要初始化弱类型:变量用时声明变量赋值:[set]
2015-01-29 13:19:38
820
原创 Linux-grep及正则表达式
文本查找的需要:grep,egrep,fgrepgrep:根据模式,搜索文本,并将符合模式的问本行显示出来、模式(Pattern):文本字符和正则表达式的元字符组合而成的匹配条件格式:grep [option] PATTERN file...-i--color-v:显示没有被模式匹配到的行-o:只显示被模式匹配到的串-E:使用扩展正则表达式 =egrep-A
2015-01-29 13:17:32
516
原创 Linux-管道及IO重定向
系统设定默认输出设备:标准输出,STDOUT,1默认输入设备:标准输入,STDIN,0标准错误输出:STDERR,2标准输入:键盘标准输出和错误输出:显示器I/O重定向:改变了数据的输入、输出来源>:覆盖输出,有时候很危险,可以通过set -C,来关闭覆盖set -C:禁止对已经存在的文件使用覆盖重定向强制覆盖输出,则使用 >|set +
2015-01-29 13:16:28
637
原创 Linux-用户及用户权限详解
用户、组、权限权限:r,w,x文件:r:可读,可以使用类似cat等命令查看文件内容w:可读,可以编辑或删除此文件x:可执行,可以命令提示符下当做命令提交给内核执行目录:r:可以对此目录执行ls以列出内部的所有文件w:可以在此目录中创建文件x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息用户:UID,/etc/p
2015-01-29 13:14:04
520
原创 Linux-Bash特性
Bash及其特性:GUI:Gnome,KDE,XfceCLI:sh,csh,ksh,bashbash:1、命令历史2、管道、重定向3、命令别名4、命令行编辑5、命令行展开6、文件名通配7、变量8、支持编程光标跳转:ctrl+a:跳到命令行首ctrl+e:。。。。。尾ctrl+u:删除光标至命令行首的内容ctrl+k:。。。。。
2015-01-29 13:13:30
437
原创 Linux文件管理
文件管理file:查看文件内容类型touch:创建文件(主要用来改变时间戳)stat:显示文件的信息(包含时间戳),stat fileName创建文件也可以使用文件编辑器nanorm-i,询问-f,强制删除-r,递归删除文件,可以删除一个目录eg: rm -rf /删除根目录及所有文件cp:copy格式:cp SRC DESTcp
2015-01-29 13:12:32
491
原创 Linux基础
GUI接口:X-Window CLI接口:#:root(管理员)$:普通用户命令格式:命令 选项 参数(命令的作用对象)选项:短选项:-char多个选项可以组合:-a -b =-ab长选项:--word通常不能组合登陆:login用户名:用户ID认证机制:Authentication授权:Authorizat
2015-01-29 13:11:59
435
原创 操作系统基础
Vmware 重启:ctrl+alt+insert F2进入BIOSLinux的基本原则:1、由目的单一的小程序组成,组合小程序完成复杂任务2、一切皆文件dll文件是在window上的,在linux是.so(shared Object)
2015-01-29 13:10:49
459
原创 算法学习-归并排序
一、归并排序学习归并排序用到了“分治法”这种设计方法。分治法步骤1、分解,原问题分解为若干子问题2、递归解决3、合并 归并排序的步骤:1、分解,待排序的n个元素的序列各分为n/2个元素的子序列2、解决,使用归并排序递归地排序两个子序列3、合并,合并两个已经排序的子序列以产生排序的答案 伪代码://MERGE-SORT(A,p,r)对数组A[p
2015-01-29 13:05:10
556
原创 算法学习-插入排序
一、插入排序对于少量的排序,它是一个有效的算法,插入排序的工作方式,就像我们打扑克的时候拿牌的过程,把新加入的牌插入到合适的位置,手中的牌总是排序好的。排序稳定性:如果在待排序的记录序列中有多个数据元素的关键字值相同,经过排序后,这些数据元素的相对次序保持不变,则称这种排序算法是稳定的,否则称之为不稳定的。伪代码:INSERTION-SORT(A)//for j=2 to
2015-01-29 12:49:15
579
转载 Tomcat与eclipse整合, server name是灰色的没有内容
在ubuntu上的eclipse中搭建tomcat环境的时候,在Tomcat,Server都配置完成后,测试一个web项目,然后运行的时候,没有Tomcat可以选择,server name一栏是灰色的!如下:解决方案: 1.首先你的eclipse的配置需要重新回复到重装的状态,但是Eclipse没有这个功能,不过你可以更换一个新的workspace, file
2015-01-22 16:44:36
1530
原创 【宋濂求学】,激励一下自己,寒假要抓紧喽~
高中时候,摇头晃脑的背课文,没有真正的理解,不过还是很被宋濂的学习精神所感染,不像现在,天一冷,就什么都不干,趁着寒假刚刚开始,要努力完成自己定下的目标!课文如下:送东阳马生序 〔明〕宋濂 余幼时即嗜学。家贫,无从致书以观,每假借于藏书之家,手自笔录,计日以还。天大寒,砚冰坚,手指不可屈伸,弗之怠。录毕,走送之,不敢稍逾约。以是人多以书假余,余因得遍观群书。既加冠,益慕圣贤之道,又
2015-01-14 16:02:12
1296
原创 java集合框架
Java集合学习笔记学习一个知识点我觉得有三点必须要弄明白,what(是什么)、why(为什么)、how(怎么做),至少要从这三个角度来思考问题,学习都是参考《java核心技术 卷1》这本书,这本书讲的很详细。 What:集合到底是什么?Ans:为了解决程序设计过程中的存储问题,java设计人员开发了一组功能完善的数据结构。 How:怎样定义并实现它?Ans:先定义规范
2014-12-28 23:20:28
599
原创 java多线程学习笔记
这是以前的一个ID,文章就不复制粘贴了,就不链接帖上吧。http://blog.youkuaiyun.com/u014325572/article/details/40989309
2014-12-28 23:19:01
469
原创 MVC设计模式
介绍MVC的设计模式,一定要了解为什么要使用它?如果不知道他给我们解决了哪些便利,人云亦云的使用它,就不能体会这种设计模式带来的便利。不妨剪去所有的枝桠,看清web应用的本质到底是什么东西. 不使用Servlet等服务器应用,我们应该如何构建一个web项目呢?即使是一个静态的WEB应用。这是一个最简单的WEB请求、响应模型,我们使用浏览器(Client)访问网站(
2014-12-28 23:11:53
776
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人