随笔分类 - 算法与数据结构
主要是对程序员的内功修炼
摘要:上一讲大概介绍了一个排序算法的概念与内存结构图,主要选自《算法精解》,各人认为,这本书写的还是不错的,大家可以直接下载epub版,然后在面度阅读APP上看,挺方便的!其实,学习,很简单! 排序是指将元素集合按照规定的顺序排列。通常有两种排序方法,升序排列和降序排列。例如,对整数集{5,2,7,1}进
阅读全文
摘要:排序算法种类 排序是指将元素集合按照规定的顺序排列。通常有两种排序方法,升序排列和降序排列。例如,对整数集{5,2,7,1}进行升序排列,结果为{1,2,5,7},对其进行降序排列结果为{7,5,2,1}。总的来说,排序的目的是使数据能够以更有意义的形式表现出来。虽然排序最显著的应用是排列数据以显示
阅读全文
摘要:B树相关概念 在B-树中查找给定关键字的方法是,首先把根结点取来,在根结点所包含的关键字K1,…,Kn查找给定的关键字(可用顺序查找或二分查找法),若找到等于给定值的关键字,则查找成功;否则,一定可以确定要查找的关键字在Ki与Ki+1之间,Pi为指向子树根节点的指针,此时取指针Pi所指的结点继续查找
阅读全文
摘要:在进行列表排序时,有个“上移”和“下移”操作,这个一般在内存里完成,然后统一提交到数据库中,对于上移与下移的设计,大叔在LIND.DDD.DOMAIN里有一个ISortBehavor接口,主要是说,如果实体对象支持排序功能,可以实现这个接口,而在扩展库中,将有为本地结果集动态排序(上移和下移)的方法
阅读全文
摘要:回到占占推荐博客索引 概念 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关 数据的逻辑结构 指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关
阅读全文
摘要:返回目录 常用数据结构的时间复杂度 程序的复杂度分为时间复杂度和空间复杂度,通过字面上可以看出它们的含义,下面我们主要来看一个集合的时间复杂度,这些集合基本包含了.net里的所有了,呵呵! O(n) O(n) O(n) O(1) O(1) O(n) O(n) O(n) O(1) O(n) O(n)
阅读全文
摘要:返回目录 解放思想与面向对象两个东西有什么联系,怎么把它们放在一起去说了呢,呵呵,解放思想实事上是指将我们的习惯性思维进行改变,使用另一种方式来有效的解决一个问题,而这种解决问题的方法往往是通过面向对象的特性去实现的。 今天要说的是“站点地图也要面向对象“,我们通过在做站点地图时,都是直接写死在页面
阅读全文
摘要:返回目录 从几年前做OA时接触过工作流的概念,那时还比较模糊,现在觉得清晰一些了,想把自己一些理解写出来,与大家分享! 工作流最简单的就是京东的订单处理,它其实就是个简单的工作流,每个节点可能有前驱节点(prev node)和后继节点(next node),如图: 而这个结构让我们想起了数据结构里的
阅读全文
摘要:返回目录 这个问题困扰了我很久,今天终于把它解决了,心中的喜悦可想而知,赶快把它记录一下 标题无限级联下拉列表框的含义: 可能有一个树型结构的表,它可能有ID,Name,ParentID,Level等字段,下面要实现的就是从一级节点开始,一级一级的列出来,并以 下拉列表框的形式体现出来,就像是N级联
阅读全文
摘要:要研究的问题:IOC是什么?它解决了什么?我们的项目中为何要用IOC?反射对性能真的影响很大吗?不用反射,谁意见最大?来吧,开始说问题1,IOC是什么?不用说什么容器,框架,大白话其实IOC就是将一些接口与它的各种实现的类名配置在一个文件中,可以是XML,也可以是.config配置文件中,然后在程序“运行时”去根据配置的信息去动态得到(resolved)这个对象,然后程序中就可以使用这个对象了,所IOC就是用来建立对象的。2,它解决了什么?一个接口,有三种实现,如sql实现,oracle实现,access实现等,那当前环境下用哪种方式来进行实现呢,这时可以由IOC来实现它。 1 // 统一规范
阅读全文
摘要:回到目录.NET中使用stack(栈)和heap(堆)两种结构在内存中存储数据,今天咱们就来说说这两个结构Value Types,值类型 在C#中,值类型继承自System.ValueType的,它们分别是 Bool, byte , char, decimal, double, enu, float, int, long, sbyte, short, struct, uint, ulong, ushortReference Types 引用类型 引用类型包括所有的从System.Object继承下来的类型,它们分别是 class, interface, delegate, object,str
阅读全文
摘要:namespace System.Linq.Dynamic{ public static class DynamicQueryable { public static IQueryable<T> Where<T>(this IQueryable<T> source, string predicate, params object[] values) { ...
阅读全文
摘要:返回目录 问题是这样的,Department表是一个部门表,由DeptId,name和Father组成,它是一种树型的关系,一个部门下可以有多个子部门,同时,它有一个父部门,祖宗部门没有父部门。 以下是测试数据(相当于Data层里取出数据的方法): static List<Department> d
阅读全文
摘要:返回目录 二叉树也是递归定义的,二叉树是非线性结构,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)右子树为空的二叉树——(c); (4)左子树为空的二叉树——(d); (5)完全二叉树——(e)注意:尽管二叉树与树有许
阅读全文
摘要:返回目录 线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。 线性表是一种常用的数据结构,以下
阅读全文
摘要:返回目录 概况 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结
阅读全文
摘要:返回目录 标准树的代码 1: class Tree 2: { 3: static Data.test.ICategoriesRepository iCategoriesRepository = new Data.test.CategoriesRepository(); 4: /// <summary
阅读全文
摘要:返回目录 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是度量算法执行的时间长短;而空间复杂度是度量算法所需存储空间的大小。 时间复杂度 一个算法执行所耗费的时间,从理论
阅读全文
摘要:VIEW层代码: 1: 2: 3: 4: 5: controller层代码: 1: public ActionResult TreeDepartment() 2: { 3: 4: Entity.OA.Department de...
阅读全文
摘要:1: static List<Entity.OA.Department> entitiesList = null; 2: 3: internal static void Reload() 4: { 5: entitiesList = (from pc in iDepartmentsRepository.GetDepartments() 6: orderby pc.DeptName ascending 7: select pc).ToList(); 8: } 9: 10: #region 树型部门列表11: /// <summary>12: /// 虚拟产品类别 13:
阅读全文