
C#
XuTianXiang_JIANGSU
这个作者很懒,什么都没留下…
展开
-
NET+AE开发中常见几种非托管对象的释放
我们知道.Net中对于内存的管理有两种方式,一种是托管对象管理,另一种是非托管对象管理。而我们通常理解的内存管理就是GC(垃圾收集),虽然GC通过对托管堆的管理,可以使我们有机会从繁锁的诸如内存泄漏之类的问题中解放出来,可以将精力专注于程序的逻辑上。但是将所有的事情都交给GC有时会损及程序的效率,严重的甚至会导致错误。为什么会出现这种情况呢?问题在于对非托管资源(文件句柄)或者需要特别关照转载 2014-05-29 11:47:51 · 1115 阅读 · 0 评论 -
.net 数据结构与算法基础:图的操作
定义图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点,边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。在有向图中,通常将边称作弧,含箭头的一端称为弧头,另一端称为弧尾,记作,它表示从顶点vi到顶点vj有一条边。若有向图中有n个顶点,则最多有n(n-1)条弧,我们又将具有n(n-1)条弧原创 2012-11-27 11:17:38 · 1165 阅读 · 0 评论 -
.net 数据结构与算法基础:高级排序
希尔排序基本思想先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成(n除以d1)个组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2计算方法 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序 排序过程:先取一个正整数d1数组元素放一组,组内进原创 2012-11-24 18:36:47 · 867 阅读 · 0 评论 -
.net 数据结构与算法基础:二叉树
二叉树简介 在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;深度为k的二叉树至多有2原创 2012-11-24 10:53:50 · 1530 阅读 · 0 评论 -
.net 数据结构与算法基础:泛型链表使用
链表链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必按顺序存储,链表在插入的时候可以达到O⑴的复杂度,比另一种线性表:顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O⑴。使用链表结构可以克服数组原创 2012-11-23 20:19:45 · 1007 阅读 · 0 评论 -
.net 数据结构与算法基础:Hashtable
C#中HashTable的用法哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,通过哈希函数Key与数组中某一位置相对应,因此key通常可用来快速查找,同时key是区分大小写;value用于存储对应于key的值。Hashtab原创 2012-11-23 16:25:23 · 836 阅读 · 0 评论 -
.net 数据结构与算法基础:泛型编程、时间测试
泛型编程:问题提出:面向对象编程存在一个众所周知的问题:“代码膨胀”,对于方法或方法集合,为了说明其所有可能的返回类型需要进行多次冗余性编写,例如:对于一个值交换函数,函数处理值可能为字符型,也可能为整数型,或是浮点型,那么为满足不同功能需要不断重写相同功能代码,为解决此问题,我们提出了泛型编程。解决方法:泛型类型提供占位符static void swap(re原创 2012-11-21 20:59:46 · 974 阅读 · 0 评论 -
AForge学习笔记(11):AForge.Imaging.Textures
Clouds texture:具有云彩的纹理效果,示例如下: CloudsTexture textureGenerator = new CloudsTexture(); float[,] texture = textureGenerator.Generate(320, 240); pictureBox1.Image =原创 2012-11-06 12:11:36 · 3166 阅读 · 1 评论 -
AForge学习笔记(9):AForge.Imaging.ComplexFilters
FrequencyFilter:频率过滤器,顾名思义,过滤器将图像一定范围内的频率通过,去除范围以外的部分。示例程序如下: Bitmap bt = new Bitmap(@"C:\Users\GAOXIANG\Desktop\1.jpg"); int a = (Int32)Math.Log(bt.Width, 2); i原创 2012-11-03 18:45:47 · 3783 阅读 · 0 评论 -
AForge学习笔记(8):AForge.Imaging.ColorReduction
BurkesColorDithering:用于实现伴有巴克斯误差扩散的色彩抖动。所谓色彩抖动即是根据调色板中的最匹配色替换原始图像颜色,在此过程中由于匹配色与原始色存在差值,因此产生误差,这些误差会进行扩散,通常通过邻近的七个像素基于协因子进行扩散。色彩抖动程序实现如下: Bitmap bt = new Bitmap(@"C:\Users\GAOXIANG\Desktop原创 2012-11-02 18:33:02 · 4707 阅读 · 0 评论 -
AForge学习笔记(4):AForge.Genetic
遗传算法简介:在学习AForge的遗传算法之前,我们首先简单介绍一下遗传算法的理念:遗传算法的提出是源于达尔文进化论思想的启发,优胜劣汰,适者生存,适应力强的生存下去的几率更大,那么在算法上我们用适应性函数来模拟遗传学中的适应性强度,函数值越大说明适应能力越强,被继续保留的概率越大。在算法当中有几个主要术语:种群(Population),基因(Gene),染色体(chromosome)。种群被原创 2012-10-30 10:31:29 · 5811 阅读 · 0 评论 -
AForge学习笔记(3):AForge.Fuzzy
AForge.Fuzzy 提供了大量的模糊集操作。FuzzySet:模糊集是模糊应用的基础,也是理解模糊应用的关键,我们通过一个例子理解模糊集的概念:在现实生活中我们以冷暖来直观的描述温度,例如我们直观认定20摄氏度左右为冷,30摄氏度左右为暖。但是在对温度进行数字型描述时,我们会发现很难确定临界点,这一临界点决定突破某一温度值为暖,低于某一温度值为冷。因此我们引入了模糊集概念,即假设我们确定原创 2012-10-29 10:39:08 · 5046 阅读 · 0 评论 -
AForge学习笔记(2):AForge.Controls
首先我们在VS2010中添加AForge.Controls提供的控件: Chart:这一控件提供了AddDataSeries,Dispose,RemoveAllDataSeries,RemoveDataSeries,UpdataDataSeries方法,通过下面的简单实例我们进行学习: 实例:// create data series array原创 2012-10-28 11:33:02 · 8848 阅读 · 0 评论