算法
pojianbing
这个作者很懒,什么都没留下…
展开
-
堆排序(C#)
堆排序代码如下: /// /// 最小堆排序(升序) /// public static int[] MinHeapSort(int[] a) { // 将数组构建为最小堆 BulidMinHeap(a); int aLenght = a.Length; int heapSize = aLenght;原创 2010-07-04 17:14:00 · 2301 阅读 · 2 评论 -
A*寻径算法新手入门
译者说:无论是现在风靡的网页游戏,还是老牌的网络游戏,寻径几乎都是难以回避的一个话题,而寻径必然从A*算法开始。关于A*国外相关的资料相当丰富,很多时候让我们为难的还不是具体的算法,而是A*的基本思路和概念。很多门槛都是从一堆陌生的概念开始的。而本文则是A*算法真正入门级的读物,不仅仅是清除了概念上的障碍还给出了相关话题深入学习的线索。文中有几点模糊的地方,我已经和原作者沟通过,后面会专门讲述。 A*寻径算法新手入门A* Pathfinding for BeginnersBy Patrick Lester转载 2010-06-05 11:31:00 · 4007 阅读 · 0 评论 -
二叉查找树(C#)
二叉查找树(C#)代码实现(自己学习过程的产物,仅供自己玩)/// /// 二叉查找树 /// public class BinarySearchTree { #region 构造函数 public BinarySearchTree(BinarySearchTreeNode root) { this.Root = root; } public原创 2010-07-13 16:24:00 · 1114 阅读 · 0 评论 -
红黑树(C#)
红黑树(C#) 黑树是插入操作类似于儿茶查找树的插入操作。只是把退出条件将NULL改为统一的叶子节点即可。关键的是对红黑树插入之后的调整操作调整策略如下:(插入调整主要是考虑当前节点和当前节点的叔叔之间的关系)1、叔叔节点颜色为红色调整策略: 将父亲节点的颜色改为黑色 将叔叔节点的颜色改为黑色 将当前节点的指针改为其父亲节点的父亲2、当叔叔节点颜色为黑色,且当前节点在其父亲节点的右子树上 将当前节点指针移动到其父亲节点 并以当前节点为轴进行左转操作 3、 当叔叔节点颜原创 2010-07-16 07:08:00 · 1788 阅读 · 0 评论 -
快速排序(C#)
快速排序代码实现:public static void QuickSort(int[] a, int startIndex, int endIndex) { if (startIndex > endIndex) return; int keyIndex = Partion(a, startIndex, endIndex); QuickSort(a, startIndex, k原创 2010-07-06 07:50:00 · 1105 阅读 · 0 评论 -
桶排序(C#)
桶排序(C#)<br />代码实现:<br />/// <summary> /// 桶排序 /// </summary> /// <param name="arrayToSort">待排序的数组(该数组的元素在[0-1) )</param> /// <returns>排序后的结果</returns> public static double[] BucketSort(double[] arrayToSort)原创 2010-07-07 13:25:00 · 1888 阅读 · 0 评论 -
基数排序(C#)
基数排序(C#)<br />代码实现:<br />/// <summary> /// 基数排序 /// </summary> /// <param name="arrayToSort">要排序的数组</param> /// <param name="maxDigit">数字的最大位数</param> /// <returns>排序后的结果</returns> public static int[] R原创 2010-07-07 13:23:00 · 1703 阅读 · 0 评论 -
计数排序(c#)
计数排序(C#)<br />代码实现:<br /> /// <summary> /// 计数排序。 /// 要求: /// arrayToSort的元素必须大于等于0,或者经过一定的转换使其元素在 /// 大于等于0范围内。例如有如下序列(-1,-8,10,11),那么根据最小值8, /// 将各个数字加8转化为(7,0,18,19),然后进行计数排序,结果为(0,7,18,19),原创 2010-07-07 13:22:00 · 1230 阅读 · 0 评论 -
合并排序(C#)
合并排序原创 2010-07-04 10:51:00 · 1339 阅读 · 0 评论 -
插入排序(C#)
算法导论学习(一) - 插入排序 插入排序是一个对少量元素进行排序的有效算法.插入排序的工作机理与很多人打牌时,整理手中牌时的做法差不多.在开始摸牌时,我们的左手是空的,牌面朝下放在桌上.接着,一次从桌上摸起一张牌,并将它插入到左手一把牌的正确位置上.为了找到这张牌的正确位置,要将它与手中已有的每一张牌从右到左地进行比较.无论在甚么时候,左手的牌都是排好序的,而这些牌原先都是桌上那副牌里做顶上的一些牌.代码实现如下: /// /// 插入排序(升序) ///原创 2010-07-03 18:03:00 · 838 阅读 · 0 评论 -
冒泡排序(C#)
冒泡排序 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止.[动画演示] 代码实现如下: /// /// 冒泡排序 /// public static int[] BubbleSort(int[] needSortArray)原创 2010-07-04 12:14:00 · 719 阅读 · 0 评论 -
重力小球
<br />package{ import flash.display.Shape; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Bitmap; import flash.display.Sprite; public class Ball extends Sprite { public var radius:Number = 40; publi原创 2010-09-04 17:39:00 · 764 阅读 · 0 评论