随笔分类 -  数据结构和算法

摘要:1.顺序表 只考虑线性表的基本操作,所以以C 接口的形式表示线性表,接口中的方法成员表示基本操作。 1.1 公共接口 为了和.NET框架中的接口IList相区分,在IList后面加了“DS”,“DS”表示数据结构。 1、求长度:GetLength() 初始条件:线性表存在; 操作结果:返回线性表中所 阅读全文
posted @ 2018-11-06 19:37 【唐】三三 阅读(403) 评论(0) 推荐(0) 编辑
摘要:哈希(散列)技术既是一种存储方法,也是一种查找方法。然而它与线性表、树、图等结构不同的是,前面几种结构,数据元素之间都存在某种逻辑关系,可以用连线图示表示出来,而哈希技术的记录之间不存在什么逻辑关系,它只与关键字有关联。因此,哈希主要是面向查找的存储结构。哈希技术最适合的求解问题是查找与给定值相等的记录。 Hashtable 与 Dictionary 的区别: ①Hashtable使用闭散... 阅读全文
posted @ 2016-07-01 21:04 【唐】三三 阅读(256) 评论(0) 推荐(0) 编辑
摘要:一、顺序查找 顺序查找(Sequential Search)又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等 阅读全文
posted @ 2016-06-23 11:14 【唐】三三 阅读(325) 评论(0) 推荐(0) 编辑
摘要:三、选择类排序 3.1.简单选择排序 http://www.cnblogs.com/tangge/p/5338734.html#XuanZe 3.2 堆排序 要知道堆排序,首先要了解一下二叉树的模型。 下图就是一颗二叉树 那么堆排序中有两种情况(看上图理解): 大根堆: 就是说父节点要比左右孩子都要大。 小根堆: 就是说父节点要比左右孩子都要小。 那... 阅读全文
posted @ 2016-06-21 16:14 【唐】三三 阅读(200) 评论(0) 推荐(0) 编辑
摘要:对现实中的排序问题,算法有七把利剑可以助你马道成功。 首先排序分为四种: 交换排序: 包括冒泡排序,快速排序。 选择排序: 包括直接选择排序,堆排序。 插入排序: 包括直接插入排序,希尔排序。 合并排序: 合并排序。 一.插入排序 1.1.直接插入排序 URL:http://www.cnblogs.com/tangg... 阅读全文
posted @ 2016-06-15 14:17 【唐】三三 阅读(224) 评论(0) 推荐(0) 编辑
摘要:集合: 联合、交叉、差异、子集 using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 数据结构和算法 { public part... 阅读全文
posted @ 2016-06-06 22:14 【唐】三三 阅读(230) 评论(0) 推荐(0) 编辑
摘要:9.1.树的定义 9.2.二叉树 人们把每个节点最多拥有不超过两个子节点的树定义为二叉树。由于限制子节点的数量为 2,人们可以为插入数据、删除数据、以及在二叉树中查找数据编写有效的程序了。 在考虑一种更加特殊的二叉树——二叉查找树的时候,鉴别子节点是很重要的。二叉查找树是一种较小数据值存储在左节点内而较大数据值存储在右节点内的二叉树。正如即将看到的那样,这种属性可以使查找... 阅读全文
posted @ 2016-06-01 15:43 【唐】三三 阅读(405) 评论(0) 推荐(0) 编辑
摘要:8.1.数组存在的问题 在处理列表的时候数组是常用的数据结构。数组可以对所存储的数据项提供快速地存取访问,而且它很易于进行循环遍历操作。当然,数组已经是语言的一部分了,用户不需要使用额外的内存,也不需要花费因使用用户自定义的数据结构所需的处理时间。 然而正如所见,数组不是一种最佳的数据结构。在无序数组中查找一个数据项是很慢的,这是因为在找到要查找的元素之前需要尽可能地访问到数组内的每一个... 阅读全文
posted @ 2016-05-26 10:14 【唐】三三 阅读(192) 评论(0) 推荐(0) 编辑
摘要:7.1.散列函数 散列是一种常见的存储数据的技术,按照这种方式可以非常迅速地插入和取回数据。散列所采用的数据结构被称为是散列表。尽管散列表提供了快速地插入、删除、以及取回数据的操作,但是诸如查找最大值或最小值这样的查找操作,散列表却无法执行地非常快。对于这类操作,其他数据结构会更适合. 7.2.选择散列函数 选择数组大小的时候,一个重要的原则就是要选择素数。 10007是素数,而且他... 阅读全文
posted @ 2016-05-24 10:35 【唐】三三 阅读(269) 评论(0) 推荐(0) 编辑
摘要:6.1.DictionaryBase 类的基础方法和属性 大家可以把字典数据结构看成是一种计算机化的词典。要查找的词就是关键字,而词的定义就是值。 DictionaryBase 类是一种用作专有字典实现基础的抽象( MusInherit)类。 存储在字典中的键值对实际上是作为 DictionaryEntry 对象来存储的。 DictionaryEntry 结构提供了两个域,一... 阅读全文
posted @ 2016-05-23 15:22 【唐】三三 阅读(296) 评论(0) 推荐(0) 编辑
摘要:了使用正则表达式,需要把 RegEx 类引入程序。大家可以在 System.Text.RegularExpression 名字域中找到这种类。一旦把这种类导入了程序,就需要决定想要用 RegEx 类来做什么事情了。 如果想要进行匹配,就需要使用 Match类。 如果打算做替换,则不需要 Match 类了。取而代之的是要用到 RegEx 类的 Replace 方法。 5.1.使用正则表达式 ... 阅读全文
posted @ 2016-05-18 14:59 【唐】三三 阅读(526) 评论(0) 推荐(0) 编辑
摘要:4.1.String类的应用 class String类应用 { static void Main(string[] args) { string astring = "Now is The Time"; //拆分位置 int pos; //单词 ... 阅读全文
posted @ 2016-05-13 14:41 【唐】三三 阅读(291) 评论(0) 推荐(0) 编辑
摘要:1.栈的实现 后进先出 自己实现栈的代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace 数据结构和算法 { //栈 class CSt... 阅读全文
posted @ 2016-04-29 10:22 【唐】三三 阅读(371) 评论(0) 推荐(0) 编辑
摘要:public class Timing { //startingTime--用来存储正在测试的代码的开始时间。 TimeSpan startingTime; //duration——用来存储正在测试的代码的终止时间。 TimeSpan durantion; public Timing() ... 阅读全文
posted @ 2016-04-28 14:34 【唐】三三 阅读(201) 评论(0) 推荐(0) 编辑
摘要:1.顺序存储结构 Array 1.引用类型(托管堆) 2.初始化时会设置默认值 2.链式存储结构 2.1.单向链表 2.2.循环链表 2.3.双向链表 阅读全文
posted @ 2016-04-27 11:11 【唐】三三 阅读(217) 评论(0) 推荐(0) 编辑
摘要:有两种对列表内数据进行查找的方法:顺序查找和二叉查找。当数据项在列表内随机排列的时候可以使用顺序查找,而当数据项在列表内有序排列的时候则会用到二叉查找。 顺序查找 二叉查找 1.顺序查找 自组织数据加快顺序查找速度 当要查找的数据元素就在数据集合的开始处时就会产生最快速的成功查找。通过找到数据项后把 阅读全文
posted @ 2016-04-04 01:09 【唐】三三 阅读(347) 评论(1) 推荐(0) 编辑
摘要:冒泡 选择 插入 数组的大小会使算法的性能产生很大的差异。选择排序比冒泡排序快了 100 多倍,而且选择排序比插入排序快了 200 多倍。 当数组元素量增加到 10000 个的时候,确实能看出数组大小对三种排序算法的影响。 1.冒泡排序 方法2 2.选择排序 找最晓小的,放在前面,再找第2个小的,直 阅读全文
posted @ 2016-03-30 20:26 【唐】三三 阅读(428) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示