
算法
文章平均质量分 71
iteye_1364
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java数据结构和算法--排序
马上要找工作了,所以的把原来的重要的课程再回顾一下,我重要复习的是数据结构,在网上下了<<Java数据结构和算法>>这本书,准备用3个星期看完.看到不如做到,做到不如写到,我的记忆力不是很好,为了看了之后不会忘记,我把学习的体会和程序代码贴上来,以供以后参考. (1)冒泡排序 Java代码 package ChapterOne; pu...原创 2011-04-01 00:11:28 · 126 阅读 · 0 评论 -
哈希算法
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。 哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,...原创 2011-04-15 23:37:24 · 107 阅读 · 0 评论 -
暴雪的哈希算法 - [转载]
暴雪公司有个经典的字符串的hash公式 先提一个简单的问题,假如有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做? 有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样的程序交给用户,我只能用无语来评价,或许它真的能工作,但...也只能如此了。 最合适的算法...原创 2011-04-16 00:28:18 · 106 阅读 · 0 评论 -
哈希算法(Hash Algorithm)初探[转载]
不约而同的,几乎所有的流行的hash map都采用了DJB hash function,俗称“Times33”算法。Perl、Berkeley DB 、Apache、MFC、STL 等等。times33的算法也很简单,就是不断的乘33。nHash = nHash*33 + *key++;我没找到什么理论可以说明这种算法的合理性,据说只是通过测试和实践发现这个算法是比较好的。如果有哪位能够提供这方面...原创 2011-04-16 00:35:49 · 171 阅读 · 0 评论 -
打造最快的Hash表(和Blizzard的对话)[转]
開元最近学习了一下Blizzard的MPQ文件格式,颇有一些心得,其中一条就是对HastTable的理解,很想写出来给大家共享,感谢Justin Olbrantz的文章《Inside MoPaQ》,大多认识来源于此。 先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做?有一个方法最简单,老老实实从头查...原创 2011-04-16 00:57:14 · 144 阅读 · 0 评论 -
打造最快的Hash表[转]
打造最快的Hash表(暴雪用的MPQ文件) 最近在网上看到篇文章,一起拜一拜暴雪先提一个简单的问题,如果有一个庞大的字符串数组,然后给你一个单独的字符串,让你从这个数组中查找是否有这个字符串并找到它,你会怎么做?有一个方法最简单,老老实实从头查到尾,一个一个比较,直到找到为止,我想只要学过程序设计的人都能把这样一个程序作出来,但要是有程序员把这样...原创 2011-04-16 00:58:25 · 117 阅读 · 0 评论 -
Hash算法大全(java实现)【转】
Hash算法有很多很多种类。具体的可以参考之前我写的Hash算法的一些分析。本处给大家提供一个集合了很多使用的Hash算法的类,应该可以满足不少人的需要的: /** * Hash算法大全<br> * 推荐使用FNV1算法 * @algorithm None * @author Goodzzp 2006-11-20 * @lastEdit Goodzzp...原创 2011-04-16 13:40:41 · 131 阅读 · 0 评论 -
在Linux上开发网络服务器的一些相关细节:poll与epoll(转)
随着2.6内核对epoll的完全支持,网络上很多的文章和示例代码都提供了这样一个信息:使用epoll代替传统的poll能给网络服务应用带来性能上 的提升。但大多文章里关于性能提升的原因解释的较少,这里我将试分析一下内核(2.6.21.1)代码中poll与epoll的工作原理,然后再通过一些 测试数据来对比具体效果。 POLL: 先说po...原创 2011-05-04 16:23:45 · 97 阅读 · 0 评论 -
常用hash算法及评测[转]
RS hash 算法unsigned int RSHash(char* str, unsigned int len){ unsigned int b = 378551; unsigned int a = 63689; unsigned int hash = 0; unsigned int i = 0; for(i = 0...原创 2013-05-23 23:27:11 · 154 阅读 · 0 评论 -
【转】几种经典的hash算法
文章出处:http://hunteagle.javaeye.com注:最近因为在做和hash有关的题目,感到很纠结。虽然上学期数据结构学过,但是当时觉得hash没什么用,所以没有认真学~后悔啊~~~现在恶补一下~计算理论中,没有Hash函数的说法,只有单向函数的说法。所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数据。用“人 类”的语言描述单向函数就是:如果某个函...原创 2013-05-23 23:51:24 · 258 阅读 · 0 评论 -
三种简单排序算法及其对比
三种简单排序算法及其对比代码: class ArraySort{ private long[] a; private int nElems; public ArraySort(int max) { a = new long[max]; nElems=0; } public void insert(long value...原创 2011-04-01 13:32:30 · 109 阅读 · 0 评论 -
递归算法
用三角数字问题说明递归Int triangle(int n){ if(n ==1) //基值条件 return 1; else return(n + triangle(n-1)); //递归调用自身}说明:导致递归的方法返回而没有再一次进行递归调用...原创 2011-04-01 13:28:50 · 95 阅读 · 0 评论 -
二分查找算法分析实现
二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。【算法思想】首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间...原创 2011-04-01 13:01:57 · 140 阅读 · 0 评论 -
归并排序算法的JAVA实现
package Utils.Sort; /** *@author Linyco *利用选择排序法对数组排序,数组中元素必须实现了Comparable接口。 */ public class ChooseSort implements SortStrategy { /** *对数组obj中的元素...原创 2011-04-01 13:18:50 · 95 阅读 · 0 评论 -
选择排序算法的JAVA实现
package Utils.Sort; /** *@author Linyco *利用选择排序法对数组排序,数组中元素必须实现了Comparable接口。 */ public class ChooseSort implements SortStrategy { /** *对数组obj中的元素...原创 2011-04-01 13:19:58 · 89 阅读 · 0 评论 -
插入排序算法的JAVA实现
package Utils.Sort; /** *插入排序,要求待排序的数组必须实现Comparable接口 */ public class InsertSort implements SortStrategy { /** *利用插入排序算法对obj进行排序 */ ...原创 2011-04-01 13:21:03 · 95 阅读 · 0 评论 -
希尔排序算法的JAVA实现
package Utils.Sort; /** *希尔排序,要求待排序的数组必须实现Comparable接口 */ public class ShellSort implements SortStrategy { private int[] increment; /** *利用希尔排序算法对数组obj进行排...原创 2011-04-01 13:21:59 · 80 阅读 · 0 评论 -
快速排序算法的JAVA实现
package Utils.Sort; /** *快速排序,要求待排序的数组必须实现Comparable接口 */ public class QuickSort implements SortStrategy { private static final int CUTOFF = 3; //当元素数大...原创 2011-04-01 13:23:02 · 89 阅读 · 0 评论 -
常用的各种排序算法的JAVA实现
用JAVA把《Data Structure and Algoritm Analysis in C》里面的排序算法实现了。整 个结构我使用的是Strategy模式。由Sort类扮演环境角色,SortStrategy扮演抽象策略角色。具体策略角色有六个,分别是 InsertSort、BubbleSort、ChooseSort、ShellSort、MergeSort、QuickSort。分别是插入排...原创 2011-04-01 13:24:28 · 71 阅读 · 0 评论 -
冒泡排序算法的JAVA实现
package Utils.Sort; /** *@author Linyco *利用冒泡排序法对数组排序,数组中元素必须实现了Comparable接口。 */ public class BubbleSort implements SortStrategy { /** ...原创 2011-04-01 13:25:42 · 95 阅读 · 0 评论 -
高级排序
希尔排序:插入排序的缺点是复制的次数太多,如果数据开始时是相对有序的,那么插入排序的效 率就能提高很多。希尔排序基于插入排序,通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项能大跨度地移动。当这些数 据项排过一趟序之后,希尔排序算法减小数据项的间隔再进行排序,依此进行下去。进行这些排序时数据项之间的间隔被称为增量,并且习惯上用字母h表示。常用的话值序列用公...原创 2011-04-01 13:27:03 · 89 阅读 · 0 评论 -
一致性 hash 算法( consistent hashing )<转>
consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 object...原创 2013-05-23 23:53:49 · 142 阅读 · 0 评论