从事互联网开发工作,写博客,记录问题与学习支持,并分析
此乃一道笔试题,当时的确也做出来啦。(但是在细节上还是出错啦,对多次重复出现的数字可能会重复计数,没有记录上次删除的元素) 如题,有序数组,可以知道平方之后在两边的数据较大,中间的数据较小。 因此可以使用两个下标,从两边向中间扫描。
1.引言 多矩阵连乘 对于一般的矩阵乘法来说,如矩阵A(m,n)与矩阵B(n,p)相乘需要进行的加法次数为m*n*p次乘法。 由于矩阵乘法满足结合律,因此矩阵相乘的结合性,会影响整个计算表达式的乘法执行次数。
#include using namespace std; int main () { int a = 3; int b = 5; cout
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变 String类中使用字符数组保存字符串,如下就是,因为有“final”修饰符,所以可以知道string对象是不可变的。
在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。 1. == java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码: 1 public class ComAddr{ 2 public stati...
网站数据分析,经常会统计一个页面或者一个网站或者其他情况的PV/UV。下面简单说一下,这些量PV/UV/PR/IP。 1.PV PV(page view),即页面浏览量,或点击量。通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。
数据分析,一般都需要显示数据,就需要使用html做复杂的表格。复杂表格一般是对td的rowspan 、colspan属性值。 在html中 标签定义 HTML 表格中的标准单元格。 (1)rowspan 属性规定单元格可横跨的行数; (2)colspan 属性规定单元格可横跨的列数。
可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进行检验。 onsubmit指定的方法返回true,则提交数据;返回false不提交数据。 直接看下面的代码: 1 2 3 4 5 6 ...
在使用SQL语句进行数据表插入insert操作时,如果表中定义了主键,插入具有相同主键的记录会报错: Error Code: 1062. Duplicate entry 'XXXXX' for key 'PRIMARY'(主键冲突) 这样我们只好检查主键是不是存在,若存在则更新,若不存在则插入。
在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组,(可以理解C/C++/Java中的数组,按照索引位置直接访问) 关联数组 - 带有指定键的数组,(可以理解为map,按照键值对存储,按照键访问) 多维数组 - 包含一个或多个数组的数组,(可以理解为复杂的数组,元素可以是普通元素或者数组) 1.索引数组 可以使用数据的索引(下标)访问的数组。
学习PHP开发要配置各种环境,一般会用到apache作为服务器、Mysql数据库。如何快速的配置环境成为困扰大家的烦恼,之前自己也配过,比较繁琐。 最新发现一款集成安装软件“phpStudy”。真可谓是实现了一键式安装配置php开发环境,下面是phpStudy信息截图: 安装只要按照向导,一步一步安装就好啦。
做网页总会使用javascript,使用javascript总会使用JSON。最近用到一下,就写写。 下面是总结: 1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js。
这几天,做个网页,之后进行解析,总是出错。最后发现是因为错误的使用了尖括号 “= ≥ 小于等于: 大于: 更多特殊字符显示可以参考:http://liuxufei.com/weblog/jishu/71.html
Apache2安装 1 我们使用root账户进行安装,首先切换到root账户,输入命令: sudo su 2 安装 Apache2 apt-get install apache2 在浏览器输入你服务器ip地址列入,如http://10.103.30.201。
1.Python中也有像C++一样的默认缺省函数 1 def foo(text,num=0): 2 print text,num 3 4 foo("asd") #asd 0 5 foo("def",100) #def 100 定义有默认参数的函数时,这些默认值参数位置必须都在非默认值参数后面。
素数是编程中经常需要用到的。 作为学习Python的示例,下面是一个高效求解一个范围内的素数的程序,不需要使用除法或者求模运算。 1 #coding:utf-8 #设置python文件的编码为utf-8,这样就可以写入中文注释 2 def primeRange(n): ...
在Eclipse中,有时候需要跨工程调用其他工程中的方法。如下面有两个Java Project : 如果要在A工程中调用B工程中的类,可以将B工程添加到A工程中: A---- >Build Path---- >Configure Build Path---- >Java Build Path 选择Projects 这样在项目A中的类就可以直接import B项目中的类啦。
1.判断单链表是否有环 使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。
1.稀疏数据的例子 对于网络图对应的节点关联矩阵、数据生成的哈希表等,这些存储起来是稀疏的,这样我们就会想到需要压缩空间。但是在压缩存储空间的同时,还要支持高效的查询操作。 Rank & Select 就可以对稀疏的数据进行压缩,还能支持高效的查询操作。
1.“树状数组”数据结构的一种应用 对含有n个元素的数组(a[1],...,a[k],...,a[n]): (1)求出第i个到第j个元素的和,sum=a[i]+...+a[j]。 进行j-i+1次加法,复杂度为O(j-i+1) (2)任意修改其中某个元素的值。
1.什么是BWT 压缩技术主要的工作方式就是找到重复的模式,进行紧密的编码。 BWT(Burrows–Wheeler_transform)将原来的文本转换为一个相似的文本,转换后使得相同的字符位置连续或者相邻,之后可以使用其他技术如:Move-to-front transform 和 游程编码 进行文本压缩。
1.什么是MTF MTF(move-to-front)是一种数据编码方式,用于提高数据压缩技术效果。 在数据压缩算法中,MTF可以作为一个额外的步骤。也就是说 ,可以先进行MTF编码,在进行数据压缩。
1.游程编码概念 游程编码又称“运行长度编码”或“行程编码”,是一种统计编码,该编码属于无损压缩编码。 2.基本原理 用一个符号值和串长代替具有相同值的连续符号,使符号长度少于原始数据的长度。
1.MySQL中的BLOB类型 Mysql中可以存储大文件数据,一般使用的BLOB对象。如图片,视频等等。 BLOB是一个二进制大对象,可以容纳可变数量的数据。因为是二进制对象,所以与编码方式无关。
1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。
java连接MS Access的两种方式: 1.JDBC-ODBC Java连接Access可以使用MS自带的管理工具-->数据源(ODBC)设置建立连接,这样就不需要导入jar。但是,如此一来程序部署的每个机器上都要进行设置不方面。
Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 1.读取word 2003及word 2007需要的jar包 读取 2003 版本(.
好久没有编写有关数据库应用程序啦,这里回顾一下java JDBC。 1.使用Java JDBC操作数据库一般需要6步: (1)建立JDBC桥接器,加载数据库驱动; (2)连接数据库,获得Connection对象(使用数据库连接地址,用户名,密码); (3)获得数据库Statement对象; (4)执行数据库操作; (5)读取结果; (6)关闭数据库连接; 2.使用Java JDBC操作数据库(mysql)代码: 连接mysql数据库,需要导入mysql数据库jar包,本代码使用mysql-connector-java-5.1.18-bin.jar。
1.介绍 读取和设置xml配置文件是最常用的操作,TinyXML是一个开源的解析XML的C++解析库,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。
1.为什么有这种需求 因为有些情况需要避免出现乱码。不管什么编码都是二进制的,这样表示为16进制就可以啦。 2.如何读取16进制文件 最近编程用这一问题,网上查了一下,感觉还是自己写吧。 16进制数据一般是:text=0x340xb5...,就是0x开头,之后是两个数字十六进制数。
原文网址:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。
原文链接 : http://blog.chinaunix.net/uid-23302288-id-3785105.html awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然...
sftp 是一个交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。 1.常用登陆方式: 格式:sftp @ 通过sftp连接,端口为默认的22,指定用户。
1.Json 数据表示方式介绍 这个可以看之前的一个文章里面有说明:Java解析(读取)Json数据 2.C++ Jsoncpp 2.1 Jsoncpp介绍 (1)JsonCpp主要包含三种类型的class:Value Reader Writer; Json::Value 是jsoncpp 中最基本、最重要的类,用于表示各种类型的对象,jsoncpp 支持的对象类型可见 Json::ValueType 枚举值。
如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形。 可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其中D为可执行程序): 其中的libjson_linux-gcc-4.6_libmt.so cannot found。
C++ 为类(Class)提供了许多默认函数。如果自己没有申明,编译器会为我们提供一个copy构造函数、一个copy assignment操作符和一个析构函数。此外,如果没有申明任何构造函数,编译器会为我们申明一个default构造函数。
1. 安装gonme核心包(如果是字符界面的话) apt-get install x-window-system-coreapt-get install gnome-core (下载完成后需要安装dgm,不能选择lightdgm,不然重启以后不能登陆桌面了)apt-get install met...
题目:求两个数的较大值,不能使用if、>。 1.不使用if、>,还要比较大小,貌似就只能使用条件表达式: x=?:; (表达式1为true时,返回表达式2;否则返回表达式3) 2. 本题目中使用条件表达式: max(a.b)=? b:a; (表达式1为true时,返回b;否则返回a) 3.如何写表达式1,区分a与b的大小。
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。 1.
C++ STL中提供了std::next_permutation与std::prev_permutation可以获取数字或者是字符的全排列,其中std::next_permutation提供升序、std::prev_permutation提供降序。
1.printf/cout在同一个语句中都是从右向左计算的。 看如下的代码: 1 #include 2 int main() 3 { 4 int i=0; 5 printf("%d %d",i++,i++); 6 printf(" %d",i++); 7 return 0; 8 } 输出结果: 1 0 2 (第5行,先计算右边的i++,再计算左边的i++。
1.char还是uchar(unsigned char) char在C/C++中占用1byte(即8bits)。 ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。
使用OpenCL编程时,kernel写成一个单独的文件或者将文件内容保存在一个string中。可以使用clBuildProgram对kernel进行编译链接(compiles & links),如果失败,可以使用clGetProgramBuildInfo获取OpenCL编译器对kernel的编译信息。
1.展开循环 如果提前知道了循环的次数,可以进行循环展开,这样省去了循环条件的比较次数。但是同时也不能使得kernel代码太大。 循环展开代码例子: 1 #include 2 using namespace std; 3 4 int main(){ 5 ...
字符串查找是信息安全、信息过滤领域的重要操作,尤其是对大文本的实时处理。这篇作为实例,使用GPU OpenCL进行精确模式串查找。 1.加速方法 (1)将少量常量数据,如模式串长度、文本长度等,保存在线程的private memory中。
OpenMP中任务调度主要针对并行的for循环,当循环中每次迭代的计算量不相等时,如果简单地给各个线程分配相同次数的迭代,则可能会造成各个线程计算负载的不平衡,影响程序的整体性能。 如下面的代码中,如果每个线程执行的任务数量平均分配,有的线程会结束早,有的线程结束晚: 1 #include...
设计模式是前人、大牛等在实际编程中对遇到的问题解决方案的抽象,也就是每一个设计模式都在编程实例中有体现。 1.责任链模式在编程中的小体现,看下面的情况: (1)if else if .... 1 if(anextHandler=_nextHandler; 9 } 10 ...
多核/多线程编程中肯定会用到同步互斥操作。除了互斥变量以为,就是临界区。 临界区是指在用一时刻只允许一个线程执行的一段用{...},包围的代码段。 在OpenMP中临界区声明方法如下: #pragma omp critical [(name)] //[]表示名字可选 { //需要同...
设计模式中的原型模型主要是针对构造复杂对象提出来的,当构造函数需要大量的操作时构造一个类的对象会耗费大量的资源。 本文:http://www.cnblogs.com/xudong-bupt/p/3506450.html 1.C++中的解决方案 在C++中默认提供了copy构造函数、copy assignment操作符,可以实现对象的内存拷贝,节省了新构造对象的开销,其中的实现机制就是操作符重载。
OpenCL编程中可以使用结构体,只需要在核函数kernel中提供同样的结构体申明就可以啦。 如果在主函数中定义了结构体: 1 typedef struct studentNode{ 2 int age; 3 float height; 4 }student; ...