算法
文章平均质量分 68
Charistain_huang
努力去拼搏!
展开
-
Bresenham算法画圆
http://www.docin.com/p-37714647.html下面先简要介绍常用的画圆算法(Bresenham算法),然后再具体阐述笔者对该算法的改进。 一个圆,如果画出了圆上的某一点,那么可以利用对称性计算余下的七段圆弧:Plot(x,y),Plot(y,x),Plot(y,-x),Plot(x,-y),Plot(-x,-y),Plot(-y,-x),Plot(-y转载 2010-05-02 12:19:00 · 14281 阅读 · 2 评论 -
Hash算法
ELFhash函数在UNIX系统V 版本4中的“可执行链接格式”( Executable and Linking Format,即ELF )中会用到,ELF文件格式用于存储可执行文件与目标文件。ELFhash函数是对字符串的散列。它对于长字符串和短字符串都很有效,字符串中每个字符都有同样的作用,它巧妙地对字符的ASCII编码值进行计算,ELFhash函数对于能够比较均匀地把字符串分布在散列表中。这些函数使用位运算使得每一个字符都对最后的函数值产生影响下面是腾讯的一个面试题:在一个cache系统中,需要实现一原创 2011-01-09 23:32:00 · 1014 阅读 · 0 评论 -
字典树
字典树:字典树的基本功能是用来查询某个单词(前缀)在所有单词中出现次数的一种数据结构,它的插入和查询复杂度都为O(len),Len为单词(前缀)长度,但是它的空间复杂度却非常高,如果字符集是26个字母,那每个节点的度就有26个,典型的以空间换时间结构字典树模板代码: #define MAX 26 //字符集大小typedef struct TrieNode{ int nCount; //记录该字符出现次数 struct TrieNode *next[MAX];}TrieNode;Trie转载 2011-01-10 13:43:00 · 643 阅读 · 0 评论 -
使用hash算法统计字符串中字符出现的频率
<br />字符匹配面试题,两个字符串如果字符和长度都相等,则称这两个字符串匹配,如abcd和dcab。用函数实现,<br />对这样的问题我们可以考虑使用hash算法来实现,使用两个256个单元的hash数组,根据字符的ASCII作为hash数组的下标, 每个数组单元中记录字符出现的次数<br />#include<stdio.h><br />#include<stdlib.h><br />#include<assert.h><br />#include<string.h><br /> bool原创 2011-01-11 13:29:00 · 1716 阅读 · 0 评论 -
堆排序算法
<br />对排序可分为两个部分:1.将待排序的数据调整成最大堆或者最小堆 需要比较n-1趟(假设有n个数据)耗时O(n)<br /> 2.从最大堆中选择最大或最小的元素只需比较二叉树深度logn的次数 <br /> 因此该算法的时间复杂度为O(N*log n)<br /> <br /> <br />第一部分也即为调整树的过程,参考代码如下:<br />//R[]为带调整的数组,s为要调整元素的开始下标,m为结束元素下标 <br />v原创 2011-01-31 19:33:00 · 652 阅读 · 0 评论