算法分析与设计
静默安然
这个作者很懒,什么都没留下…
展开
-
堆排序代码实现
大根堆是升序def keep_max_heap(h,n,root): left=2*root+1#下标从0开始 right=2*root+2 maxnum=root if left<n and h[left]>h[maxnum]: maxnum=left if right<n and h[right]>h[maxnum]: maxnum=right if maxnum!=root:原创 2021-07-16 18:28:57 · 131 阅读 · 0 评论 -
蓝桥杯真题-2016-A3方格填数(回溯+全排列)
方格填数如下的10个格子 填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?1580请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。/*全排列 按10!排列,提前剪枝*/#include<iostream>#include<math.h>u...原创 2019-03-22 21:13:33 · 235 阅读 · 0 评论 -
sort函数的用法
参考博客:http://www.cnblogs.com/pirote-zjy/p/7717914.htmlhttps://zhidao.baidu.com/usercenter?uid=0ae44069236f25705e7958b8&teamType=2sort函数的用法(C++排序库函数的调用)头文件是#include<algorithm>(一)为什么要用c...转载 2019-02-19 20:32:07 · 664 阅读 · 0 评论 -
快速排序之总结
最近突然之间发现快排的其他写法,从左向右的遍历和非递归方法,特添补如下:http://www.cnblogs.com/TenosDoIt/p/3665038.html参考博客:https://www.cnblogs.com/sjy123/p/3287817.html参考博客:https://blog.csdn.net/superlc320/article/details/1862489...转载 2018-10-06 14:46:57 · 652 阅读 · 0 评论 -
算法期末复习-----递归与分治
第二章递归与分治直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数。 1.全排列算法思想:当n=1时,Perm(R)=(r),当n>1时,perm (R)=(r1)perm(R1),Ri=R-{ri),而perm(R1)=(r2)perm(R2),perm (R2)=(r3)perm(R3).....................perm(...原创 2018-12-31 19:53:06 · 815 阅读 · 0 评论 -
算法分析与设计----分治策略
一、分治策略的基本思想1.将原始问题划分或者归结为规模较小的子问题2.递归或迭代的求解每个子问题3.将子问题的解综合得到原问题的解注意:1.子问题与原始问题性质完全一样2.子问题之间可彼此独立求解3.递归停止时,子问题足够小可直接求解二、应用(一)二分检索 (二)二分归并排序 将原始问题划分或者归结为规模较小的子问题 对半划分mid=...原创 2018-12-16 22:04:44 · 246 阅读 · 0 评论 -
全排列问题
【题目】设计一个递归算法生成n个元素{r1,r2,…,rn}的全排列。【算法讲解】设R={r1,r2,…,rn}是要进行排列的n个元素,Ri=R-{ri}。集合X中元素的全排列记为perm(X)。(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀得到的排列。R的全排列可归纳定义如下:当n=1时,perm(R)=(r),其中r是集合R中唯一的元素;当n>1...转载 2019-02-20 08:57:31 · 289 阅读 · 0 评论 -
【算法设计与数据结构】为何程序员喜欢将INF设置为0x3f3f3f3f?
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/jiange_zh https://blog.csdn.net/jiange_zh/article/details/50198097 在算法竞赛中,我们常常需要用到一个“无穷...转载 2018-11-12 18:11:17 · 150 阅读 · 0 评论 -
字符串的朴素字符匹配算法
一、认为S[0]和T[0]中分别存储字符串的长度,S为主串,T为子串#include<stdio.h>int Index(char* S,char* T,int pos){ int i=pos; int j=1; int k=S[0]; //printf("%d\n",k); while(i<=S[0]&&j<=T[0]){ if(S...原创 2018-10-19 23:31:59 · 138 阅读 · 0 评论 -
素数(质数)的性质
一、质数(prime number)又称素数,有无限个。二、定义 质数定义为在大于1的自然数中,除了1和它本身外不再有其他的因数,否则称为合数。三、分布规律 以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式逐渐增多。三、性质 (1)质数P的约数只有两个:1和P。 (2)初等数学的基本定理:任一大于1的自然数,要么本...转载 2018-12-05 15:42:50 · 12920 阅读 · 0 评论 -
C++的函数重载(定义初学)
前言:C语言不允许函数重名,这给程序员带来了不少的麻烦。例如:(1)写一个函数,求2个数中的最大值double find_max(double a,double b);(2)写一个函数,求3个数中的最大值double find_max(double a,double b,double c);find_max是个好名字,但是已经被占用了。二、函数名重载 在C++...原创 2018-12-12 18:49:51 · 3166 阅读 · 0 评论 -
C++的函数重载(具体应用)
一、C++重载函数的函数匹配步骤1先根据函数名进行查找--------找到一个或多个同名的函数(若一个都没有,报编译错误)2找到函数名后按照“类型”+“个数”进行匹配----------若找到一个完全匹配(参数个数和类型都相同)的函数,则调用该函数 ----...原创 2018-12-12 19:17:53 · 567 阅读 · 0 评论