![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
algorithm
bigning1118
这个作者很懒,什么都没留下…
展开
-
poj 3061 Subsequence
<br />从长为n的全为正数的数组a中,找到个数最少的连续子数列使其和>=m<br />example:<br />n=10,m=15,a[10]={5 1 3 5 10 7 4 9 2 8},结果为2<br /> <br /> <br /> <br />algorithm:<br />维护一个队列,这个队列中的数正好满足要求,队列头从数组起始位置往右移动,遍历一遍后,输出队列出现过的个数最少时的队列元素个数<br /> <br /> <br />int cal(int * a,int n,int m)<原创 2011-05-10 20:50:00 · 464 阅读 · 0 评论 -
[算法导论] 6.4堆排序
堆数据结构是一种数组对象 ,如图所示,可以看成是一种完全二叉树,除最后一层外,每一层都是填满的最大堆是满足下面条件的堆:除了根结点以外的每个结点i,有:A[parent(i)]>=A[i],即任意节点的值都小于其父节点 利用最大堆排序时,首先将待排序数组整理成最大原创 2011-07-30 19:46:35 · 358 阅读 · 0 评论 -
【算法导论】 2.3合并排序
将待排序数组分并成两部分,分别执行合并排序,再将两部分有序数组合并为一个,时间复杂度为O(n*lgn)#include using namespace std;void mergeSort(int * a,int low,int high);void merge(int原创 2011-07-22 19:35:59 · 367 阅读 · 0 评论 -
【算法导论】 2.2选择排序
选择排序就是从数组中找出最大的数与第一个数交换,再找次大的数与第二个元素交换,依此类推,时间复杂度与插入排序一样,同为O(n^2)#include using namespace std;int main(){ cout<<"输入数组个元素个数:"; int n;原创 2011-07-22 19:04:25 · 300 阅读 · 0 评论 -
[算法导论]2.1 插入排序
这是一个对少量元素排序的有效算法,工作机理与很多人打算时,整理手中牌时的做法差不多,摸起一张牌,为了找到这张牌的正确位置,将它与手中已有的每一张牌从右到左地进行比较。#include using namespace std;int main(){ cout<<"要排序数原创 2011-07-22 18:42:42 · 266 阅读 · 0 评论 -
stl笔记
<br />1. Sort函数,sort函数不仅可以对STL中的容器进行排序,还可对数组排序。如:<br />#include<iostream><br />#include<algorithm><br />#include<vector><br />usingnamespacestd;<br /> <br />boolcomp(inta,intb){returna<b;}; ////自定义排序函数<br /> <br />intmain()<br />{<br /> inta[5]原创 2011-05-09 10:00:00 · 305 阅读 · 0 评论 -
给你m个东西,放在n个相同的盒子中(相同,即不计顺序),每个盒子可以放任意多,问有多少种放法
<br />题目描述:<br />给你m个东西,放在n个相同的盒子中(相同,即不计顺序),每个盒子可以放任意多,问有多少种放法。<br />这是组合数学母函数的典型应用。<br /><br />解题报告:<br />整数划分问题。<br />dp[i][j] 表示 j 个东西放 i 个盒子中的方法数。则 i 个盒子的状态只有 2 种:有空的,和没有空的。<br />即dp[i][j] = 有空的 + 没有空的。<br />情况1:j < i<br />没有空的方法数为 0,有空的时,把一个盒子单独拿出来当做原创 2011-06-02 20:14:00 · 2464 阅读 · 0 评论 -
STL中的sort对结构体排序
struct MyStruct{int a,b;bool operator(const MyStruct str){return b}}MyStruct * my=new MyStruct[100];sort(my,my+100);原创 2011-05-25 11:27:00 · 731 阅读 · 0 评论 -
快速计算n的m次方
<br />以下方法时间复杂度为 O(log2(m))<br />long long myCal(int n,int m)<br />{<br /> long long t=1;<br /> while(m)<br /> {<br /> if(m&1)<br /> t=t*n;<br /> n=n*n;<br /> m=m>>1;<br /> }<br /> return t;<br />}原创 2011-05-14 11:01:00 · 1364 阅读 · 0 评论 -
B树、B-树、B+树、B*树
B树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字; 3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树; 如: B树的搜索,从根结点开始,如果查询的关键字与结点的关转载 2013-11-10 19:04:18 · 412 阅读 · 0 评论