算法
Balancer
与其临渊羡鱼,不如退而结网。
展开
-
冒泡法
#include #include using namespace std; void BubbleSort(int pDataAry[], int nCount) { int nTemp = 0; for(int i = 1; i < nCount; i++) { for(int j = nCount - 1; j >= i; j--)原创 2012-02-16 09:52:44 · 499 阅读 · 0 评论 -
已知前序和中序求后序
假设前序遍历为 adbgcefh, 中序遍历为 dgbaechf 前序遍历是先访问根节点,然后再访问子树的,而中序遍历则先访问左子树再访问根节点 那么把前序的 a 取出来,然后查找 a 在中序遍历中的位置就得到 dgb a echf 那么我们就知道 dgb 是左子树 echf 是右子树,因为数量要吻合 所以前序中相应的 dbg 是左子树 cefh 是右子树 ; 下图为求出的二转载 2013-03-26 20:16:29 · 777 阅读 · 0 评论 -
如何通俗的理解递归
本文转载出处:http://www.oschina.net/question/274508_50195 首先,递归,你可以想想成循环。for循环也可以看作类似递归的东西。但是for循环和递归有个本质区别在于,for循环,是在循环外,进行判断,以决定是否直接退出。而递归,是在循环体内判断,是否退出本次循环。这里就有两个差别了。 1、并不是说for循环不能在循环体内跳出,完全可以,但是希望强调,这转载 2012-11-09 00:04:41 · 6693 阅读 · 0 评论 -
求位于同一平面内的两条直线的交点
#include #include #include using namespace std; struct Point { Point() { dX = 0.0; dY = 0.0; } double dX; double dY; }; // 第一条直线式:a11X + a12Y = b1 // 第二条原创 2013-03-22 22:10:54 · 1127 阅读 · 0 评论 -
深度优先和广度优先的理解
本段话转自百度知道一个网友的回答,因为回答的实在是太通俗到位了,所以就贴过来了。 问题如下: 深度优先和广度优先的区别、用法。 回答如下: 首先要理解搜索步,一个完整的搜索步包括两个处理 a) 获得当前位置上,有几条路可供选择 b) 根据选择策略,选择其中一条路,并走到下个位置 相当于在漆黑的夜里,你只能看清你站的位置和你前面的路,但你不知道每条路转载 2013-03-24 20:08:14 · 1645 阅读 · 0 评论 -
插入排序
// 函数功能:插入排序 // 函数名称:InsertSort // 传入参数:ary -- 待排序的数组,length -- 数组的长度 // 日期:2013-05-09 void InsertSort(int ary[], int length) { for (int i = 1; i < length; i++) { int nKey = ary[i]; int j = i -原创 2013-05-09 23:27:28 · 610 阅读 · 0 评论