
算法
烟消云撒
中山大学研究生,研究方向计算机视觉、机器学习
展开
-
时间复杂度
计算方法1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。2. 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n原创 2015-11-24 10:08:24 · 347 阅读 · 0 评论 -
冒泡排序和选择排序C++实现
冒泡排序和选择排序C++实现冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放原创 2015-11-24 10:20:32 · 515 阅读 · 0 评论 -
广义拉格朗日函数的理解
为了求如下约束最优问题:引入广义拉格朗日函数:先需要证明:网上有的博文对(4)式的证明不容易看懂,我证明如下:首先将 记作函数。1)如果,由于可以取任意大,因此这时函数不可能取得最小值。因此函数只有在时才可能取得最小值。2)如果, =,因此(4)式两边等价。第二步来证明: (1转载 2015-11-26 11:23:02 · 8587 阅读 · 2 评论 -
二叉树各种操作
#include#include #include using namespace std;//二叉树的节点类class BinTreeNode{private: int data; BinTreeNode *left, *right;public: //利用初始化列表完成data,left,rightn的初始化 BinTreeNode(const int &item, B原创 2016-04-05 19:21:17 · 518 阅读 · 0 评论 -
堆排序
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>原创 2016-04-05 21:32:13 · 514 阅读 · 0 评论