摘要: 在软件设计相关领域,“堆(Heap)”的概念主要涉及到两个方面:一种是数据结构,逻辑上是一颗完全二叉树,存储上是一个数组对象(二叉堆)。另一种是垃圾收集存储区,是软件系统可以编程的内存区域。本文所说的堆指的是前者,另外,这篇文章中堆中元素的值均以整形为例堆排序的时间复杂度是O(nlog2n),与快速排序达到相同的时间复杂度. 但是在实际应用中,我们往往采用快速排序而不是堆排序. 这是因为快速排序的一个好的实现,往往比堆排序具有更好的表现. 堆排序的主要用途,是在形成和处理优先级队列方面. 另外, 如果计算要求是类优先级队列(比如, 只要返回最大或者最小元素, 只有有限的插入要求等), 堆同样是 阅读全文
posted @ 2011-09-13 23:50 Eric Sun 阅读(10542) 评论(9) 推荐(3)
摘要: 插入排序算法主要分为:直接插入算法,折半排序算法(二分插入算法),希尔排序算法,后两种是直接插入算法的改良。因此直接插入算法是基础,这里先进行直接插入算法的分析与编码。直接插入算法的排序思想:假设有序数组从小到大为array[0],array[1],array[2],....,array[n-2],array[n-1],那么将待排数值array[n]与前面的有序数组从后向前依次比较,直到在有序数组中找到小于待排数值array[n]的位置,将array[n]插入到此位置,并入组合成新的有序数组。直接插入算法--代码如下所示: //直接插入排序算法(传递待排数组名,即:数组的地址。故形参数... 阅读全文
posted @ 2011-08-24 11:26 Eric Sun 阅读(3880) 评论(9) 推荐(5)
摘要: 自顶向下的归并排序:是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为:1)划分子表 2)合并半子表 阅读全文
posted @ 2011-08-18 19:17 Eric Sun 阅读(10329) 评论(17) 推荐(7)
摘要: 简单的冒泡排序算法,代码如下://冒泡排序(从数组的起始位置开始遍历,以大数为基准:大的数向下沉一位)privatestaticvoid BubbleSortFunction(int[] array) { try { int length = array.Length; int temp; bool hasExchangeAction; //记录此次大循环中相邻的两个数是否发生过互换(如果没有互换,则数组已经是有序的) ... 阅读全文
posted @ 2011-08-17 16:02 Eric Sun 阅读(7654) 评论(0) 推荐(0)
摘要: 快速排序算法(C#实现):确定关键值的位置,以此递归的将数组划分为左右两个区间,每次划分后关键值都游离左右区间之外。 阅读全文
posted @ 2011-08-17 14:10 Eric Sun 阅读(29036) 评论(17) 推荐(9)
摘要: 大数据相乘:下面是我写的一个关于大数据相乘的算法,核心思想就是通过小学竖式乘法进行运算 阅读全文
posted @ 2011-08-13 08:38 Eric Sun 阅读(1083) 评论(0) 推荐(0)
摘要: 用如下方法可以保证应用程序只运行一个实例。添加引用usingSystem.Reflection;usingSystem.Runtime.InteropServices;usingSystem.Diagnostics;调用DLL文件[DllImport("User32.dll")]privatestaticexternboolShowWindowAsync(IntPtrhWnd,intcmdShow);[DllImport("User32.dll")]privatestaticexternboolSetForegroundWindow(IntPtrhWnd 阅读全文
posted @ 2011-02-22 17:13 Eric Sun 阅读(1598) 评论(6) 推荐(0)
摘要: C# 用WMI(Windows Management Instrumentation)方法区分系统是64位还是32位。 阅读全文
posted @ 2011-02-22 17:00 Eric Sun 阅读(7439) 评论(10) 推荐(2)
摘要: 在SharePoint中创建List之后,可以通过界面上的List Setting中的Versioning settings 来控制List的版本信息(即:指定在该List中所创建的Item是什么样子的):在Create a version each time you edit an item in this list? 处选择Yes。 可供选择的有三种方式:No versioning、Create major versions(Example:1、2、3、4)、Create major and minor(draft) versions。这里的Major versions 称为大Ver... 阅读全文
posted @ 2011-01-31 09:11 Eric Sun 阅读(1096) 评论(0) 推荐(0)
摘要: C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息);本文的主要模块为:① :生成xml文件② :遍历xml文件的节点信息③ :修改xml文件的节点信息④ :向xml文件添加节点信息⑤ :删除指定xml文件的节点信息 阅读全文
posted @ 2011-01-27 15:10 Eric Sun 阅读(30991) 评论(13) 推荐(12)