随笔分类 - C++
摘要:一些需要知道的基础知识点: 在程序代码中是通过变量名对内存单元进行存取操作的,但是代码经过编译后将变量名转换为该变量在内存中的存放地址,对变量值的存取都是通过地址进行的。比如i+j的运算,如果i等于3,j等于4,程序是先根据变量名与地址的对应关系,找到变量i的地址,从第一个地址开始顺序读取四个字节数
阅读全文
摘要:strcpy函数的原型是 char *strcpy(char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。 不调用C++/C 的字符串库函数,编写函数 strcpy: char *strcpy(char *strDest,
阅读全文
摘要:#include<iostream> #include<string> using namespace std; int main() { int a;//输入的数 int y = 0;//循环中的余数' string s = ""; cin >> a; if (a == 0)//比较特殊,单独处理
阅读全文
摘要:分治思想求解的问题,但是比较特殊,只有分解问题和求解小问题,不需要合并 每次也只需要经过判断,分解一半,所以比其他分解两边的效率高 最坏情况时间复杂度为O(n^2),期望时间复杂度为O(n) 找基准值时候可以考虑随机选择 #include<iostream> #include<vector> #in
阅读全文
摘要:还是分治的思想,解决方法利用了归并排序。具体可以看一下这篇博客。 第三章:分治II - 不妨不妨,来日方长 - 博客园 (cnblogs.com) C++代码如下,可以在VS直接运行。 #include<iostream> #include<vector> #include<algorithm> u
阅读全文
摘要:我已无法用语言来描述递归有多牛逼。 #include<iostream> #include<vector> #include<algorithm> using namespace std; int max_sub_array(vector<int>& data, int left, int righ
阅读全文
摘要:这个比较简单,想清楚基线条件和递归条件就可以了,直接看代码(VS直接运行): #include<iostream> #include<vector> using namespace std; int arrayMax(int data[], int length); int main() { int
阅读全文
摘要:简单查找的时间复杂度为O(n) 二分查找的时间复杂度为O(logn) 用递归实现二分查找: 基线条件:数组只包含一个元素。如果如果要查找的值与这个元素相同,就找到了;否则说明不在数组中。 递归条件:把数组分成两半,将其中一半丢弃,并对另一半执行二分查找。 C++代码实现如下(VS可以直接运行): #
阅读全文
摘要:#include<iostream> using namespace std; int main() { int a, b; cout << "inPut a and b:" << endl; cin >> a >> b; cout << "a:" << a << endl; cout << "b:
阅读全文