`
gwmwhu
  • 浏览: 63245 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
新博客地址:http://elvin.im
转载自:http://www.williamlong.info/archives/433.html 匹配中文字符的正则表达式: [\u4e00-\u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:\n\s*\r评注:可以用来删除空白行 匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分 ...
原文地址:http://plq168.blog.163.com/blog/static/53101462201093115050188/ 参考于http://adil.2scomplement.com/2009/01/django-playing-with-upload_to-field/     django提供了两种字段类型models.FileField与models.ImageField,用于保存上传文件与图 象.这两类字段 ...
n个已排序的序列A[1...n]的中项是这个序列的第[n/2](向上取整)小的元素。最直接的方法是对这个序列进行排序并取出该元素,这个方法需要O(n log n)的时间。 选择算法是找出序列中的第k小的元素,该算法会设置一个阈值,当元素个数小于该值时直接排序找出第k小元素。若不小于阈值,则将n个元素分为[n/5]组,每组5个元素,如果n不是5的倍数,则排除剩余的元素。每组进行排序并取出它们的中项即第3个元素。接着将这些中项序列中的中项元素记为mm,它是通过递归计算得到的。将A中的元素划分成三个数组:A1、A2和A3,其中分别包含小于、等于和大于mm的元素。最后求出第k小的元素出现在三个数组 ...
Python的中若是想使用多维序列我们可以利用序列的乘法,但是序列的乘法是有一个特性,下图可以反映出该特性:
今天实现的算法是求解最长公共子序列,在字母表Σ上,分别给出两个长度为n和m的字符串A和B,确定在A和B中最长公共子序列的长度并输出该最长公共子序列。这里,A=a1a2...an的子序列是一个形式为ai1ai2...aik的字符串,其中每个ij都在1和n之间,并且1<=i1<i2<...<ik>=n,子序列不是子串,并不要求连续。例如zxyxyz和xyyzx的最长公共子序列为xyyz。 此问题可以用动态规划技术来解决,为了使用动态规划,首先得有一个递推公式。令A = a1a2...an好B = b1b2...bn,令L[i,j]表示a1a2...ai和b1b2. ...
当没有无线路由器的时候怎么让Android手机通过家用宽带连接Internet呢?只要有一台笔记本或者是台式机+无线网卡。具体的做法如下: 首先以管理员身份在CMD中运行如下命令: netsh wlan set hostednetwork mode=allow ssid=xxx key=xxxxxxxxxxxx 该命令启用了无线承载网络并将无线网络的SSID设置为xxx,密码设置为xxxxxxxxxxxxxx,此时会出现一个新的网络连接,我的机器是无线网络连接 2。此命令运行成功后将连接到Internet的网络连接的Internet连接共享到新出现的无线网络连接 2。截图如下: ...
今天实现的算法是寻找多数元素,多数元素是指在一个含有n个元素的序列中出现次数多于[n/2](向下取整)的元素。 蛮力寻找多数元素是对每个元素进行计数,如果某个元素的计数超过[n/2],则断言它是多数元素,否则不存在多数元素。这种方法的时间复杂度过高,可以寻找更高性能的算法解决这类问题。 如果一个序列存在多数元素,那么该多数元素一定是该序列排序后的中间元素,也就是第[n/2](向上取整)个元素。所以可以通过寻找一个序列的中间元素,然后判断该元素是否为多数元素来寻找多数元素。对于此方法,有一个结论可以使用: 在原序列中去除两个不同元素后,那么在原序列中的多数元素在新序列中还是多数元素。 ...

并查集

并查集是一种树形的数据结构,用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。判断亲戚关系是并查集的一个应用:若某个家族过于庞大,要判断两个人是否是亲戚,现在给出某个亲戚关系图,求任意 ...
  原文地址:http://coolshell.cn/articles/2583.html 下面是一些比较重要的算法,原文 罗列了32个,但我觉得有很多是数论里的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了) A*搜寻算法 俗称A星算法。这是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像
原文地址:http://blog.csdn.net/v_july_v/article/details/6127953   译者:July   二零一一年一月十日 ------------------------------------ 参考论文:The Best of the 20th Century: Editors Name Top 10 Algorithms。By Barry A. Cipra。地址:http://www.uta.edu/faculty/rcli/TopTen/topten.pdf。 博主说明:1、此20世纪的十大算法,除了快速排序算法,或者快速傅里叶变换 ...
原文地址:http://wpblog.blog.hexun.com/28883111_d.html 在JAVA里面,可以用复制语句"A=B"给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变. 以下是归纳的JAVA中复制数组的方法: 1.使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点2.使用clone方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点3.使用System.arraycopy(src, srcPos, d ...
快速排序算法是20世纪十大最伟大的算法之一。它是由C.R.A.Hoare于1962年提出的一种划分交换排序算法,其采用的是分治的思想,分治是将原问题分解成若干与原问题相似的子问题,通过递归的解决这些子问题来最终得出原问题的解。          快速排序是通过一个划分(SPLIT)算法来将待排序序列划分成两部分,其中左边的元素都小于中间的元素,右边的元素都小于中间的元素。然后通过对子数组进行递归划分就可以完成对整个序列的排序。所以划分(SPLIT)算法是快速排序的核心,它的伪代码如下: 算法:SPLIT 输入:数组A[low...high] 输出:1)重新排列的A;2) ...
Global site tag (gtag.js) - Google Analytics