- 博客(34)
- 收藏
- 关注
原创 最近点对问题(分治法)
问题:平面最近点对问题是指:在给出的同一个平面内的所有点的坐标,然后找出这些点中最近的两个点的距离.代码:#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using n...
2018-11-27 20:22:13
1519
原创 如何在windows下安装apache-storm(详解)
主要有以下四步:1.安装jdk并配置环境变量2.安装zookeeper并配置环境变量3.安装python并配置环境变量4.安装storm并配置环境变量因为storm要配合着其他软件才能运行,又由于软件存在版本的问题,容易因为不匹配造成安装失败。我开始安装的是storm1.1.0和jdk1.8,就因为版本不匹配造成无法运行一、安装jdk11.0.1下载链接:https...
2018-11-21 22:11:50
3210
4
转载 矩阵相乘问题(分治法求解)
采用蛮力+分治进行求解:矩阵相乘公式:代码:public class Matrix { //初始化一个随机nxn阶矩阵 public static int[][] initializationMatrix(int n){ int[][] result = new int[n][n]; for(int i = 0...
2018-11-21 20:29:36
5522
转载 任务分配问题
问题描述:假设有n个任务需要分配给n个人执行,每个人只执行一个任务,每个任务只由一个人执行。第i个人执行第j个任务的成本是Cij(1<=i,j<=n), 求解初最小成本的分配方案。蛮力法:算法描述:用矩阵表示任务分配问题,矩阵元素Cij(1<=i,j<=n)表示人员i执行任务j的成本。任务分配问题转化为,在矩阵中的每一行选取一个元素,这些元素分别属于不同的列。用...
2018-11-17 11:46:25
11080
转载 0/1背包问题(蛮力法)
问题描述:给定n个重量为{w1,w2,w3,....,wn}、价值为{v1,v2,v3,...,vn}的物品和一个容量为C的背包,0/1背包问题是求解这些物品中的一个最有价值的子集,并且要能够装到背包中。蛮力法:算法描述:使用蛮力法解决0/1背包问题,就是将所有的物品装入背包的可能全部列举出来(背包问题的蛮力解法是穷举这些物品的所有子集,找出能够装到背包中的所有子集,并在这些子集中...
2018-11-17 11:21:46
8975
1
原创 排序问题(蛮力法,分治法)
蛮力法:选择排序法:算法思想:在剩余序列中选出最小(或最大)的关键字,和剩余序列的第一个关键字交换位置,依次选择下去(每次扫描结束找出最小的一个元素依次放在前面的位置),直至使整个序列有序。代码实习:#include<iostream>using namespace std;void print(int a[], int n){ for(int j...
2018-11-17 10:41:21
2687
原创 字符串匹配问题(BF算法、KMP算法)
问题:给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配,T称为模式。BF算法(朴素模式匹配):BF算法思想: 就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。代码实现:int BF(char S[],ch...
2018-11-17 10:18:42
4085
转载 经典进程同步问题--读者写者问题
问题描述有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:①允许多个读者可以同时对文件执行读操作;②只允许一个写者往文件中写信息;③任一写者在完成写操作之前不允许其他读者或写者工作;④写者执行写操作前,应让已有的读者和写者全部退出。 问题分析1) 关系分...
2018-11-13 21:39:21
2499
1
转载 经典进程同步问题--哲学家进餐问题
五个哲学家公用一张圆桌, 分别坐在周围的五张桌子上, 在圆桌上有五个碗和五只筷子交叉排列, 它们的生活方式是交替的进行思考和进餐. 哲学家进行思考时不用筷子, 饥饿时取一只他两边的任意一只筷子(默认取左边的筷子, 没有时取右边的, 都没有时就取不了), 当他有两只筷子时就能进餐. 进餐后, 放下筷子继续思考.若只有一只筷子, 不放弃该筷子并等待拥有另一只筷子时再进餐.用一个信号量表示一只筷子,...
2018-11-13 21:18:26
1040
转载 经典进程同步问题--生产者消费者问题
问题描述: 一群生产者进程在生产产品,并将这些产品提供给消费者去消费。为了使生产者进程与消费者进程能够并发进行,在两者之间设置一个具有n个缓冲区的缓冲池,生产者进程将产品放入一个缓冲区中;消费者可以从一个缓冲区取走产品去消费。尽管所有的生产者进程和消费者进程是以异方式运行,但它们必须保持同步:当一个缓冲区为空时不允许消费者去取走产品,当一个缓冲区满时也不允许生产者去存入产品。...
2018-11-13 20:59:13
2471
1
原创 汉诺塔问题
问题描述: 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。...
2018-11-13 15:47:55
257
原创 欧几里得算法(辗转相除法)求最大公约数代码
求解最大公约数依据如下定理:gcd(a,b) = gcd(b,a mod b) (不妨设a>b 且r=a mod b ,r不为0);两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。代码:非递归算法:int gcd(int a,int b) { int c; while(b>0) { c=a%b;//...
2018-11-13 15:16:44
1499
1
转载 linux(ubuntu)中vim/vi的常见用法
vi/vim常用命令 vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别。 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下...
2018-10-30 20:34:29
10099
转载 VMware虚拟机的三种联网方法及原理
虚拟机Vmware互联网网络应用网络协议一、Brigde——桥接 :默认使用VMnet01、原理:Bridge 桥"就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在"桥"上,运行着程序,让局域网A中的所有数据包原封不动的流入B,反之亦然。这样,局域网A和B就无缝的在链路层连接起来了,在桥接时,VMWare网卡和物理网卡应该处于同一IP网段 当然要保证两个局域网没有...
2018-10-30 18:31:10
429
转载 接通电源后,计算机做了那些基本操作
我们几乎每天都要打开电源启动机器,面对屏幕上出现的一幅幅启动画面,我们一点儿也不会感到陌生,但是,计算机在显示这些启动画面时都做了些什么工作呢? 打开计算机电源后到计算机准备接受你发出的命令之间计算机所运行的过程称为引导过程。我们知道,当关闭电源后,内存的数据将丢失,因此,计算机不是用内存来保持计算机的基本工作指令,而是使用另外的方法将操作系统文件加载到内存中,再由操作系统接管对机器的控制。这是...
2018-10-07 14:44:33
3742
转载 操作系统 自旋锁+信号量+互斥量+临界区+死锁的区别
自旋锁(SpinLock)自旋锁是专为防止多处理器并发而引入的一种锁。如果是单核处理器,则自旋锁定义为空操作,因为简单的关闭中断即可实现互斥。 自旋锁最多只能被一个线程持有,如果一个线程试图请求一个已被争用(已被另一个线程持有)的自旋锁,那么等待自旋锁的线程将会反复检查自旋锁是否释放,不会进入睡眠状态,一直处于忙等待状态(busy-waiting),直到获取该自旋锁才能继续执行未完成的...
2018-09-20 19:44:41
985
原创 为什么一个字节的补码表示范围是-128~127
我们要先区分一下原码、反码和补码的表示规则:0的表示: 原码:有正零和负零之分,[+0]补=0000 0000,[-0]补=1000 0000; 反码:同样有两种表示方法,[+0]反=0000 0000 ,[-0]反=1111 1111; 补码:零只有一种表示方法,不分正负,[0]补=0000 00...
2018-09-19 20:42:06
36318
13
原创 怎么理解用代码来实现数据结构
怎么能更好的用代码实现数据结构内容?个人理解为:1.首先要掌握数据结构的逻辑,也就是说要知道数据结构是怎么实现的。这一点达不到的话,后面根本就无从谈起。 2.其次是怎么来实现。既然是实现嘛,肯定就要涉及到数据存储问题,实现分为三点 1)先是对存储结构的选择(定义数组及一些相关的参数系数或者一些其...
2018-09-01 11:02:06
1471
转载 码农如何不断晋升
在知乎上看到上面这个问题计算机科学与技术专业的学生要怎样做才能避免成为一个低级的码农?,以下是我的回答:其实题主应该是看到一些学长学姐或者是看到网上一些有关程序员的言论才来问这个问题的吧?首先,我觉得题主是个很有心的人,还没毕业就开始对自己的未来开始考虑了。其次,题主现在的技术积累和学习成绩应该是一般般,我猜没什么项目经验,虽然想努力但是还是很迷茫,不知道如何下手。再者,题主应该是个对计...
2018-08-23 13:50:31
3335
转载 码农常用的十个网站
程序员的工作和日常生活非常的枯燥,这里给大家推荐一些程序员经常使用的网站,也是我经常上的一些网站,尤其是前三个网站感觉用起来非常的舒服。我大致把这些网站分为三类,使用工具类,设计分享类,资讯交流类,业界良心类。希望能对大家有所帮助。 1,Github代码托管(https://github.com/) 作为开源代码库以及版本控制系统,Github拥有140多万开发者用户。随着越来越多的应...
2018-08-22 17:40:22
4112
转载 JSP中的脚本、表达式、声明和注释
声明 在 JSP 页面中 , 可以声明一个或者多个合法的变量和方法 , 声明后的变量和方法可以在本 JSP 页面的任何位置使用 , 并将在 JSP 页面初始化时被初始化 语法格式如下 : <!%declaration; [declaration;] ...%>在声明时需要注意 :声明以 "<%!" 开头 , 以 "%>" 结尾 , "%!" 必须紧...
2018-07-19 15:33:52
612
转载 HTML5中table标签与form标签的区别
html中form表示一个表单,用来把一系列的控件包围起来,然后再统一发送这些数据到目标,比如最常见的注册,你说需要填写的资料,都是被封装在form里的,填写完毕后,提交form内的内容,如果不再form内则不会提交。 table 则是用来布局的 当你填写资料的时候 你有没有发现页面所提供的文本框,文字,按钮之类的..都摆放的非常整齐 这就是table的作用,一行一行的以表格的形式展示内容。 ...
2018-07-19 11:15:26
4500
原创 CSS中盒子模型的真实宽高怎么计算
盒子一共有四个属性:分别为外边距(margin)、边框(border)、内边距(padding)、内容(content).关系如下图所示:而我们平常设置盒子的宽和高往往是指的内容的宽和高div{ width:200px; height:18px;}此段话代表content所占大小为宽200像素,高为100像素;而当我们增加其他三个属性时di...
2018-07-16 19:56:47
25667
5
原创 java可视化编程实践--桌面时钟
定义六个类用于实现整个可视化时钟Clock.java:时钟类,聚合表盘和3个指针对象,构成整个时钟Plate.java:表盘类,用来显示静态的时钟表盘、刻度等内容Arm.java:指针类,用来显示时、分、秒指针ClockComponent:可视化时钟组件类,时钟的可视化显示,即整个时钟界面的表盘显示。ClockFrame:整个程序窗口类,用于显示整个程序的窗口。VisualClock:主程序类,用...
2018-07-10 21:54:18
3758
转载 java接口--简单易懂的Java接口
接口接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的...
2018-07-07 11:01:19
725
转载 Java常用的输入输出语句
对于经常上机刷题的来说,首先得解决输入输出方法,Java的输入输出流在Java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法首先输出大家最熟悉的莫过于输出方法,直接用System.out.println()或者System.out.print()了下面一个实例1234567public class Main{ public static void main(Str...
2018-07-06 13:29:34
57237
5
原创 类的继承与多态
继承继承是类与类之间的关系。比如说我们现在定义了一个鸟类,拥有鸟的一些属性和行为。现在我们有送信的需求,需要定义一个信鸽类。由于鸽子属于鸟类。具有与鸟类相同的属性和行为,所以我们在创建信鸽类时可以将鸟类拿来复用,并且保存鸟类具有的属性和行为。不过,并不是所有的鸟类都具有送信的习惯,因此还需要添加一些信鸽具有的独特属性和行为。鸽子类保留了鸟类的属性和行为,这样就节省了定义鸟与鸽子共同具有的属性和行为...
2018-07-06 09:56:43
345
转载 Eclipse中如何修改Java代码注释的样式和如何提取出注释文档
摘要 习惯写注释不一定代表技术强,但是一个习惯写注释的程序员一定是个好程序员,至少写的代码美观,有益于后期维护。代码其实就是一种艺术品,如果有装饰的注释,那简直就是美上加美,让人赏析悦目。 我们都知道eclipse中可以快捷的为类,方法和数据域添加注释,方法为/**+回车,默认的样式为: 很明显这个类注释只含有作者的信息,如果我们想为其添加类名、描述、创建时间、版本信息等,那该如何呢?操...
2018-07-04 21:56:42
452
转载 java中常见的包名称及其说明
经常说起包,拿计算机比喻,一个工程相当于一个磁盘,包相当于文件夹,而类相当于文件。包的存在1)、有利于类的查找与管理,按自己的需要给包分类,通常按功能分:vo类、dao类、工具类、service类、controller类等。2)、解决了类命名时相同的冲突,在同一文件夹里不能同时定义名字相同的两个文本文档,java中也是,不能在同一包里定义两个相同类名的类,但是不同包就可以。3)、保护类中成员变量及...
2018-07-03 21:03:12
4942
原创 怎么用文本编辑器和控制台程序实现简单的JAVA程序
首先打开一个记事本,然后再上面敲上代码:然后将文件保存起来。(注意:文件名一定要和类名相同,HelloWorld.java 文件扩展名为java)之后打开控制台程序,先进入到存取这个文件的根目录,例:进入到根目录后1.输入“javac 保存的文件名.java”。例:javac HelloWorld.java。进行文件的编译,生成.class文件,这是编译之后的JAVA字节码文件。2.编译好之后,输...
2018-07-03 16:32:41
1754
原创 scanner 使用错误:Exception in thread "main" java.util.NoSuchElementExceptionation
在进行基本的文件输入输出时,我的代码为:import java.util.*;import java.nio.file.*;import java.io.*;import java.util.Scanner;public class AddNumber{ public static void main(String[] args){ int num1=0,num2=0; try{ S...
2018-07-03 10:18:33
3096
原创 循环单链表(带有附加头结点)C++实现
#include<iostream>using namespace std;template<class T> //采用模板类型 struct CircLinkNode{ //单链表节点类的定义 T data; //节点的数据域 CircLinkNode<T> *next; //节点的指针域 CircLinkNode(CircLinkNo...
2018-06-22 21:07:27
1829
原创 使用delete 删除指针,真的删除了吗
delete指针我们在用动态内存分配时,经常是用new来定义一块内存空间,比如说 int* p = new int(1);这时会在堆上分配一块内存,当作int类型使用,内存中存储的值为1并将内存地址赋值给在栈中的int*类型的p。(注意:p只是一个变量,就像是int a=1中的a一样,不过a是整形变量,而p是指针变量)当我们不用p指针时,往往需要用delete p将其释放,我们需要注意的是释放一个...
2018-06-22 10:02:48
9431
原创 顺序表——数组实现(C++代码)
#include<iostream>using namespace std;//应用类模板,使函数能够适用不同类型的变量template<class T>class SeqList{//定义顺序表类 public: SeqList(int sz=0); //构造函数 SeqList(SeqList<T>& L); //...
2018-06-20 12:30:49
854
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人