摘要: 1. 堆简单介绍,数据存储及堆上定义的操作2. 堆排序简单实现及算法的时间复杂度3. 代码下载1. 堆简单介绍,数据存储及堆上的定义的操作二叉堆在本文中使用数组(.net中的List)来存储,它可以完全被看作是一颗二叉树。除了叶子节点外,其他每层都是满的。二叉堆可以分为最大堆和最小堆。最大堆定义如下:有定义可知,最大堆中中根元素是最大的。最小堆定义与最大堆定义正好相反,最小堆中根元素是最小元素。下面定义堆上的操作。 1. 给定某个节点下标i,该节点的父节点PARENT(i) = floor(i / 2) 2. 给定某个节点下标i,该节点的左孩子LEFT(i) = 2 * i 3. 给定某个节点 阅读全文
posted @ 2011-03-16 20:54 qiang.xu 阅读(1411) 评论(0) 推荐(1) 编辑
摘要: 1. 数组的随机排列算法及其简单验证2.随机算法简单分析3. 代码下载1. 数组的随机排列算法及其简单验证1.1 数组的排列的随机算法的最终目的是达到,数组每个元素在每个位置上出现的概率为1/n(其中n为数组大小)。一种的算法如下,对于数组A中的每个元素A[i],随机附上一个权值,然后根据该权值对A数组进行排序。下面是一个简单的实现,排序使用的是冒泡排序,代码如下: publicstaticvoidPermuteBySorting(refint[]A){intlength=A.Length;List<int>B=newList<int>();//随机数System.Ra 阅读全文
posted @ 2011-03-16 13:53 qiang.xu 阅读(1575) 评论(0) 推荐(1) 编辑
摘要: 1. 下载地址2. 我常用的feature1. 下载地址http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/2. 我常用的feature2.1 guding line2.2 代码移动在代码编辑器中选择单行或者是多行代码块,然后点击alt键,按上下键完成代码上下移动。2.3 更多featurehttp://msdn.microsoft.com/zh-cn/downloads/ff961018.aspx 阅读全文
posted @ 2011-03-16 10:56 qiang.xu 阅读(453) 评论(0) 推荐(1) 编辑
摘要: 1. 数组声明2. 数组初始化3. 数组取值1. 数组声明int[] table; // not int table[]; int[] numbers; // declare numbers as an int array of any size numbers = new int[10]; // numbers is a 10-element array numbers = new int[20]; // now it's a 20-element arraystring[,] names = new string[5,4];2. 数组初始化int[] numbers = new i 阅读全文
posted @ 2011-03-16 10:45 qiang.xu 阅读(225) 评论(0) 推荐(0) 编辑