
算法
文章平均质量分 84
ChrisyehGone
I Love IT!
展开
-
C++ 堆排序算法 分治法(递归)
(二插)堆是一个数组,可以被看成一个近似的完全二叉树。树的根节点是A[1]第一步:给定一个节点的下标i,我们可以计算得到它的 父结点和左右孩子的下标:int Parent(int i){ return floor(i / 2.0);}int Left(int i){ return 2 * i;}int Right(int i){ return 2 * i +原创 2015-08-30 20:35:48 · 658 阅读 · 0 评论 -
C++ 归并排序 递归实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。归并排序中最重要的操作是如何将将二个有序数列合并。原理是比较两个数列的第一个数,谁小就先取谁,再继续比较下一个。循环完了后,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中void MemeryArray(int a[], int n, int b[转载 2015-09-11 23:00:07 · 785 阅读 · 0 评论 -
二叉树前序、中序、后序遍历相互求法
今天来总结下二叉树前序、中序、后序遍历相互求法,即如果知道两个的遍历,如何求第三种遍历方法,比较笨的方法是画出来二叉树,然后根据各种遍历不同的特性来求,也可以编程求出,下面我们分别说明。首先,我们看看前序、中序、后序遍历的特性: 前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树转载 2015-09-05 12:31:38 · 304 阅读 · 0 评论 -
B树 平衡多路查找树
B树具体讲解之前,有一点,再次强调下:B-树,即为B树。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。如人们可能会以为B-树是一种树,而B树又是一种一种树。而事实上是,B-tree就是指的B树。特此说明。我们知道,B 树是为了磁盘或其它存储设备而设计的一种多叉(下面你会看到,相对于二叉,B树每个内结点有多个分支转载 2015-09-04 10:58:52 · 608 阅读 · 0 评论 -
C++ AVL树 自平衡二叉查找树
AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。 对二叉树的平衡调整过程,主要包含四种旋转操作:LL,LR,RR,RL 。 LR由当前节点左儿子的一次RR旋转和当前节点的一次LL旋转构成。同理,转载 2015-09-04 11:01:56 · 452 阅读 · 0 评论 -
C++ 最长子数组问题求解——分治法(递归)
问题:寻找A的和最大的非空连续子数组。例如,{1,-5,4,-6,2,3,7,-4,9,-3}的最大子数组为{2,3,7,-4,9}分析:采用分治技术来求解最大子数组问题。假定我们要寻找子数组A[low,high]的最大子数组。使用分治技术意味着我们要将子数组划分为两个规模尽量相等的子数组。A[low...high]的任何连续子数组A[i...j]所处位置必然是一下三种情况原创 2015-08-30 10:14:35 · 586 阅读 · 0 评论 -
C++ 插入排序算法
插入排序算法代码示例:#include "stdafx.h"int A[10] = {3,2,6,4,1,5,7,9,8,10};void Insert_Sort(int *A, int length){ for(int j = 1; j < length; j++) { int key = A[j]; int i = j - 1; while(i >= 0 &&原创 2015-08-30 11:26:10 · 475 阅读 · 0 评论 -
Mac Matlab R2014b 解决Mex 出现No supported compiler or SDK was found的问题
在使用Mex -setup命令的时候,出现了“No supported compiler or SDK was found”的问题。首先原因为:默认情况下,Matlab R2014b是无法检测到Xcode7.0的。为了让在Matlab R2014b中加入对Xcode7.0的支持,请下载本文附件。请按照本文的指示下载并安装文件。解决方法如下:1)下载文件xcode7_me原创 2016-01-13 16:30:16 · 9271 阅读 · 4 评论