![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
冈仁波齐下写一串优美的代码
正在THU熏陶的非现实主义者
展开
-
【理解】递归图
联系作者:humminwang@163.com递归图不是一种经典算法,也不是一种数据结构,但是我们仍然要把他单独拿出来,因为如果掌握这种简单的递归图的画法,我们便很容易分析一下大型的递归问题,不会被其中各种复杂的调用关系,不知所措,所以还是有必要学习一下。递归问题把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归要有边界条件递归前进段递归返回段。当边界条件...原创 2019-12-01 08:46:39 · 5425 阅读 · 1 评论 -
【经典算法】快速排序
联系作者:humminwang@163.com快速排序算法是一种基于交换的高效的排序算法,它采用了分治法的思想:从数列中取出一个数作为基准数(枢轴,pivot)。将数组进行划分(partition),将比基准数大的元素都移至枢轴右边,将小于等于基准数的元素都移至枢轴左边。再对左右的子区间重复第二步的划分操作,直至每个子区间只有一个元素。快速排序的时间复杂度在最坏情况下是O(N2)...原创 2019-11-29 09:03:24 · 191 阅读 · 0 评论 -
【数据结构】·堆
联系作者:humminwang@163.com堆(heap)堆通常是一个可以被看做一棵树的数组对象。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。堆总是满足下列性质:堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。应用:堆排序构建优先队列C++ STL代码:定义方法一://需要调动到#include<queue&...原创 2019-11-28 09:31:11 · 161 阅读 · 0 评论 -
【数据结构】·优先队列
联系作者:humminwang@163.com优先队列优先队列(priority queue)(priority \ queue)(priority queue)定义:普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。在优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出(first in,la...原创 2019-11-26 23:43:50 · 234 阅读 · 0 评论 -
【经典算法】·二分法
二分法对于区间[a,b][a,b][a,b]上连续不断且f(a)⋅f(b)<0f(a)·f(b)<0f(a)⋅f(b)<0的函数y=f(x)y=f(x)y=f(x),通过不断地把函数f(x)f(x)f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。通俗语言就是将搜索空间不断的减半,从而逼近解的过程。从二分查找来看二分法:...原创 2019-11-25 23:25:29 · 17192 阅读 · 0 评论