摘要: 当我们要在数组中搜索一个数据,常常会享受到极大的复杂度,如硬搜O(n),二叉搜索树O(n)(期望)等。 所以,今天我们来引入一个新的对单调数列进行搜索的方法——二分搜索。 如下数列: 1 3 7 8 12 15 17 22 我们在数列中查找17这个数 如果直接遍历,就会享受到O(n)的复杂度 但是如 阅读全文
posted @ 2020-10-20 16:17 一杯好凉茶 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 一 类的定义 在c中,我们使用“类”来描述“对象”,可以说“类”的实现是cOOP的核心。 类中包括对象的“属性”和“方法”,以“人”这一类为例,属性是指对象的性质,如年龄,性别,身份证号等;方法则是指对象发出的“动作”,如上学,上班,吃饭,睡觉等。特殊地,当我们称“人类”这一类为“基类”,称“学生” 阅读全文
posted @ 2020-10-15 16:21 一杯好凉茶 阅读(659) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; int a[1000001]; void qsort(int l,int r){ int mid=a[(l+r)/2]; int i=1,j=r; do{ while(a[i]<mid) i++; while( 阅读全文
posted @ 2020-10-14 14:58 一杯好凉茶 阅读(132) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; int a[6666],b[6666],c[6666]; int lena,lenb,lenc; char s1[6666],s2[6666]; int main(){ scanf("%s %s",s1+1,s 阅读全文
posted @ 2020-10-12 16:38 一杯好凉茶 阅读(101) 评论(0) 推荐(0) 编辑
摘要: c++语言中,我们可以任意重载(重新定义)运算符 这种操作一般是为了使用伟大的STL或自行进行封装 e.g.使用库函数std::sort或优先队列 下面就以重载小于号为例 重载小于号 struct Node { //首先这个操作要在结构体中进行 int d, e; //这是主程序中本来要用到的变量( 阅读全文
posted @ 2020-10-12 16:36 一杯好凉茶 阅读(188) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; struct zhan{ int s[10000]; int top=0; void zhanpop(){//将栈顶弹出 top--; } void zhanpush(int n){//将数据读入栈 top++ 阅读全文
posted @ 2020-10-12 16:35 一杯好凉茶 阅读(167) 评论(0) 推荐(0) 编辑
摘要: stack的基本操作有: 1、入栈:如s.push(x); 2、出栈:如s.pop(). 注意:出栈操作只是删除栈顶的元素,并不返回该元素。 3、访问栈顶:如s.top(); 4、判断栈空:如s.empty().档栈空时返回true。 5、访问栈中的元素个数,如a.size(); #include< 阅读全文
posted @ 2020-10-12 16:09 一杯好凉茶 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 前缀和 已知n*m矩阵,q次询问,每次给出子矩阵左上角和右下角坐标,求子矩阵的和。 1.暴力算法 直接朴素的多重循环累加每一元素 2.优化算法 用s(x,y)(x,y)表示面积 s(m,n)(p,q)=s(0,0)(p,q)-s(0,0)(m,q)-s(0,0)(p,n)+s(0,0)(m,n) 3 阅读全文
posted @ 2020-10-12 16:04 一杯好凉茶 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 代码 阅读全文
posted @ 2020-10-10 21:06 一杯好凉茶 阅读(88) 评论(0) 推荐(0) 编辑