位运算应用口诀和实例(转自大笨狼)
摘要:位运算应用口诀和实例位运算应用口诀 清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 "<<" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。位运算符的应用 (源操作数s 掩码mask)(1
阅读全文
数据结构实际应用----订单排序(堆排序求前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所示。这种堆中根结点(称为堆顶)的关键字最小,我们把它称为小根堆。反之,若完全二叉树中任一非叶子结点的关键字
阅读全文
数据结构Tire 树实际应用----过滤禁词
摘要:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。它有3个基本性质: 根节点不包含字符,除根节点外每一个节点都只包含一个字符。 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。 每个节点的所有子节点包含的字符都不相同。基本操作 其基本操作有:查找 插入和删除,当然删除操作比较少见.我在这里只是实现了对整个树的删除操作,至于单个word的删除操作也很简单.n..
阅读全文
栈和队列
摘要:栈和队列死常用的两种数据结构,逻辑节后和线性表一样,不同之处在于操作受限,只是线性表的一个子集。更准确的说它们插入,删除,受限制。在.net中,值类型在栈上分配,引用类型在托管堆上分配。栈(stack)的数据特点“后进先出”,或者先进后出栈可广泛用于求值,进制转换,括号匹配,递归调用等"先进后出的问题",十进制转换二进制八进制数的一种算法就是利用栈来实现算法步骤:取十进制数取药转换的基数循环把十进制数与基数相互转的余数压入栈把十进制与基数相处的商赋值给新的十进制数当十进制不等于0时继续循环///a10进制数,b是进制数StaticvoidMulBase(inta,intb)
阅读全文
线性表
摘要:线性表(LinearList)是具有相同特性的数据元素的一个有限序列。该序列中所含元素的个数称之为线性表的长度。线性表中元素在位置上是有序的。顺序表和链表是线性表的两种重要形式。2线性表的顺序存储结构-----顺序表顺序表特点1容量固定2访问速度快(排序后)在c#中顺序表的直接表现形式是数组,数组是引用类型,数组的长度(托管堆分配一定长度内存空间,引用类型初始值是null,值类型如int0)一旦确定就不能更改,这使得数组没有添加,删除元素的操作。。任何对数组的添加,删除操作都是逻辑意义上的。数组的特点是访问速度快,但是缺点明显,进行添加删除是不可以的,如果要动态改变集合的大小,就要用syste
阅读全文
数据结构与算法 概述
摘要:一、数据的存储结构1.顺序存储结构(sequencestoragestructure)是逻辑上相邻的节点存储在物理位置上也相邻的存储单元里。2.链式存储结构(linkedstoragestructure)不要求逻辑上相邻的节点存储在物理位置上也相邻。3.索引存储是在存储节点信息同时,建立一个附加的索引表,然后利用索引表中的索引号的值来确定节点的存储单元地址。4.散列存储是根据节点的值累确定存储地址,把节点值作为自变量,通过一个称之为散列函数的计算规则确定该节点存储单元地址。二、数据类型1.高级语言的数据类型分2种:原子类型和结构类型。Char.intfloatdoublevoid等是原子类型,
阅读全文