• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • YouClaw
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






超薄

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

02 2012 档案

 
位运算应用口诀和实例(转自大笨狼)
摘要:位运算应用口诀和实例位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 "<<" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。位运算符的应用 (源操作数s 掩码mask)(1 阅读全文
posted @ 2012-02-16 13:09 超薄 阅读(240) 评论(0) 推荐(0)
数据结构实际应用----订单排序(堆排序求前N大)
摘要:1.堆排序思想堆排序是一种树形选择排序,在排序过程中,将A[1..n]看成是完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。2.堆的定义:n个元素的序列K1,K2,K3,…Kn称为堆,当且仅当该序列满足特性:Ki≤K2i , Ki ≤K2i+1(1≤i≤n/2)堆实质上是满足如下性质的完全二叉树:树中任一非叶子结点的关键字均大于等于其孩子结点的关键字。例如序列{1,35,14,60,61,45,15,81}就是一个堆,它对应的完全二叉树如下图1所示。这种堆中根结点(称为堆顶)的关键字最小,我们把它称为小根堆。反之,若完全二叉树中任一非叶子结点的关键字 阅读全文
posted @ 2012-02-15 14:06 超薄 阅读(1869) 评论(0) 推荐(1)
数据结构Tire 树实际应用----过滤禁词
摘要:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。它有3个基本性质: 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点包含的字符都不相同。基本操作 其基本操作有:查找 插入和删除,当然删除操作比较少见.我在这里只是实现了对整个树的删除操作,至于单个word的删除操作也很简单.n.. 阅读全文
posted @ 2012-02-13 17:55 超薄 阅读(5889) 评论(4) 推荐(4)
快速排序算法
摘要:快速排序算法是最快的排序算法,当然它是针对大量通常无序的集合而言是正确的。publicvoidQSort(){RecQSort(0,numElements-1);}publicvoidRecQSort(intfirst,intlast){if((last-first)<=0)return;else{intpart=this.Partition(first,last);RecQSort(first,part-1);RecQSort(part+1,last);}}publicintPartition(intfirst,intlast){intpivotVal=arr[first];intth 阅读全文
posted @ 2012-02-11 20:17 超薄 阅读(213) 评论(0) 推荐(0)
动态规划
摘要:动态规划认为是递归的反向技术,递归的效率低下。斐波那契数列0,1,2,3,5,8,13,21,34staticlongrecurFib(intn){if(n<2)returnn;elsereturnrecurFib(n-1)+recurFib(n-2);}动态规划版本staticlongiterFib(intn){int[]val=newint[n];if((n==1)||(n==2))return1;else{val[1]=1;val[2]=2;for(inti=3;i<=n-1;i++)val[i]=val[i-1]+val[i-2];}returnval[n-1];}stat 阅读全文
posted @ 2012-02-11 20:17 超薄 阅读(223) 评论(0) 推荐(0)
字典 DictionaryBase 和 SortedList
摘要:字典是一种利用键值对来存储的数据结构。作为一种抽象类,dictionaryBase类可以实现不同的结构sortedList是按照分类顺序基于键值来存储键值对的,它可以通过引用数据结构中的值得索引位置也可以访问存贮在结构中的数据。Dictionary中,存储在字段中的键值对于时间上最为DictionaryEntry对象来存储的。DictionaryEntry结构提供两个域,一个用于键,一个用于值。对于内部而言会把键值存储在innerHashTable的散列对象中。publicclassIPAddresses:DictionaryBase{publicIPAddresses(){}publicvo 阅读全文
posted @ 2012-02-11 20:16 超薄 阅读(1026) 评论(0) 推荐(0)
模式匹配文本处理
摘要:使用正则表达式在System.TextRegularExpressionusingSystem;usingSystem.Text.RegularExpressions;classchapter8{staticvoidMain(){Regexreg=newRegex("the");stringstr1="thequickbrownfoxjumpedoverthelazydog";MatchmatchSet;intmatchPos;matchSet=reg.Match(str1);if(matchSet.Success){matchPos=matchSet. 阅读全文
posted @ 2012-02-11 20:15 超薄 阅读(996) 评论(0) 推荐(0)
位运算
摘要:一个求素数的例子publicvoidGenPrimes(){for(intouter=2;outer<=arr.GetUpperBound(0);outer++)for(intinner=outer+1;inner<=arr.GetUpperBound(0);inner++)if(arr[inner]==1)if((inner%outer)==0)arr[inner]=0;}publicvoidShowPrimes(){for(inti=2;i<=arr.GetUpperBound(0);i++)if(arr[i]==1)Console.Write(i+"" 阅读全文
posted @ 2012-02-11 20:13 超薄 阅读(477) 评论(0) 推荐(1)
基础排序算法
摘要:检测算法的类usingSystem;classCArray{privateint[]arr;privateintupper;privateintnumElements;publicCArray(intsize){arr=newint[size];upper=size-1;numElements=0;}publicvoidInsert(intitem){arr[numElements]=item;numElements++;}publicvoidDisplayElements(){for(inti=0;i<=upper;i++)Console.Write(arr[i]+"&quo 阅读全文
posted @ 2012-02-11 20:12 超薄 阅读(233) 评论(0) 推荐(0)
基础查找算法
摘要:顺序查找staticintSeqSearch(int[]arr,intsValue){for(intindex=0;index<arr.Length;index++)//小bugif(arr[index]==sValue)returnindex;return-1;}查找最大和最小staticintFindMin(int[]arr){intmin=arr[0];for(inti=0;i<arr.Length;i++)if(arr[i]<min)min=arr[i];returnmin;}staticintFindMax(int[]arr){intmax=arr[0];for(i 阅读全文
posted @ 2012-02-11 20:12 超薄 阅读(1683) 评论(0) 推荐(0)
Collection 类,泛型 时间测试
摘要:C#里定义集合的最简单方法是继承CollectionBase类usingSystem;usingSystem.Collections;publicclassCollection:CollectionBase{publicvoidAdd(Objectitem){InnerList.Add(item);}publicvoidRemove(Objectitem){InnerList.Remove(item);}publicnewvoidClear(){InnerList.Clear();}publicnewintCount(){returnInnerList.Count;}}classchapter 阅读全文
posted @ 2012-02-11 20:10 超薄 阅读(203) 评论(0) 推荐(0)
数据结构 图
摘要:一个图是由顶点,和边集E组成的。无向图,有向图若图中所有的便有两个顶点没有次序关系和方向,即(V1,V2)和V(V2,V1)代表同一个便,则称为无向图,反之则为有向图。完全图在一个无向图中,如果任意两顶点都有一条边直接连接,则称该图为完全无向图。路径路径是指图中顶点的序列回路回路是指在有向图中路径至少为1一边初始顶点也是结束顶点。在有向图中,变可能相同,但在无向图中,边必须相同。顶点的表示publicclassVertex{publicboolwasVisited;publicstringlabel;publicVertex(stringlabel){this.label=label;wasV 阅读全文
posted @ 2012-02-11 20:09 超薄 阅读(1699) 评论(0) 推荐(0)
二叉树和二叉查找树
摘要:人们时常选择二叉树超过诸如数组和链表真阳的较为基础的数据结构,因为人们可以快速的查找二叉树(相对于链表),还可以迅速的二叉树中插入和拆除数据(相对于数组)。人们把每个节点最拥有不超过两个子节点的树定义为二叉树。二叉查找树是一种吧较小数据存储在左节点二较大数据存储在右节点的二叉树。PublicclassNode{PublicintData;PublicNodeleft;PublicNoderight;PublicvoidDisplayNode(){Console.writeline(Data);}}PublicclassBinarySearchTree(){PublicNoderoot;Pbul 阅读全文
posted @ 2012-02-11 20:07 超薄 阅读(5821) 评论(0) 推荐(1)
串
摘要:串又称为字符串,是一种特殊的线性表,在非数值处理(如信息检索,文本编辑,机器翻译)中有广泛应用。在使用.netframework中的使用string进行许多改变时会使用stringbuilder,这是因为string和字符串是不可变的,而StringBuilder对象是易变的。创建String对象Stringname="Jeneiferect";Stringname="MikeMcMillan\nInstructor,CIS\tRoom306";转意。Sting的方法stringsubString(intindex,intleng);IntIndexof 阅读全文
posted @ 2012-02-11 20:05 超薄 阅读(180) 评论(0) 推荐(0)
栈和队列
摘要:栈和队列死常用的两种数据结构,逻辑节后和线性表一样,不同之处在于操作受限,只是线性表的一个子集。更准确的说它们插入,删除,受限制。在.net中,值类型在栈上分配,引用类型在托管堆上分配。栈(stack)的数据特点“后进先出”,或者先进后出栈可广泛用于求值,进制转换,括号匹配,递归调用等"先进后出的问题",十进制转换二进制八进制数的一种算法就是利用栈来实现算法步骤:取十进制数取药转换的基数循环把十进制数与基数相互转的余数压入栈把十进制与基数相处的商赋值给新的十进制数当十进制不等于0时继续循环///a10进制数,b是进制数StaticvoidMulBase(inta,intb) 阅读全文
posted @ 2012-02-11 20:04 超薄 阅读(293) 评论(0) 推荐(0)
线性表
摘要:线性表(LinearList)是具有相同特性的数据元素的一个有限序列。该序列中所含元素的个数称之为线性表的长度。线性表中元素在位置上是有序的。顺序表和链表是线性表的两种重要形式。2线性表的顺序存储结构-----顺序表顺序表特点1容量固定2访问速度快(排序后)在c#中顺序表的直接表现形式是数组,数组是引用类型,数组的长度(托管堆分配一定长度内存空间,引用类型初始值是null,值类型如int0)一旦确定就不能更改,这使得数组没有添加,删除元素的操作。。任何对数组的添加,删除操作都是逻辑意义上的。数组的特点是访问速度快,但是缺点明显,进行添加删除是不可以的,如果要动态改变集合的大小,就要用syste 阅读全文
posted @ 2012-02-11 20:02 超薄 阅读(2969) 评论(0) 推荐(0)
数据结构与算法 概述
摘要:一、数据的存储结构1.顺序存储结构(sequencestoragestructure)是逻辑上相邻的节点存储在物理位置上也相邻的存储单元里。2.链式存储结构(linkedstoragestructure)不要求逻辑上相邻的节点存储在物理位置上也相邻。3.索引存储是在存储节点信息同时,建立一个附加的索引表,然后利用索引表中的索引号的值来确定节点的存储单元地址。4.散列存储是根据节点的值累确定存储地址,把节点值作为自变量,通过一个称之为散列函数的计算规则确定该节点存储单元地址。二、数据类型1.高级语言的数据类型分2种:原子类型和结构类型。Char.intfloatdoublevoid等是原子类型, 阅读全文
posted @ 2012-02-11 20:00 超薄 阅读(1522) 评论(1) 推荐(0)