语法
船船船船船
记录工作点滴
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
友元函数分析
一句话理解:友员是一种“权限”,我把A设置为我的friend (权限任意public,private),A就可以在类外对我进行访问;A访问朋友,通过的媒介是 引用 & 。场景:使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数,数据共享。优点:够提高效率,表达简单、清晰。缺点:友元函原创 2017-12-17 13:43:42 · 316 阅读 · 0 评论 -
一句话理解复杂语法
很多时候,许多概念记住又会频繁的忘记。再次学习的时候又要理解一次,无用功特别多。在此整理一些不宜理解的概念当做工具手册。也为了鞭策自己吧。 哈希表: 中和了数组(易查找,不易删插)链表(易删插,不易排序)的有点, 缺点在于不支持排序。(参考哈希排序,得到的是一个个数)哈希的思想我觉得就相当于之前数学上学习的,你的值域是另一个东西的定义域。 1.开放定址法 2.拉链法(原创 2017-12-16 22:47:53 · 391 阅读 · 0 评论 -
快速排序感想
快排作为一个常见的排序方式,校招的时候看过,没记到脑子中。最近在极度压抑的情况下,逼着自己,也算是学熟悉了。关键点: 1,保留已经定位的位置 (之前一股脑的些,VS一直提醒说栈溢出,仔细想了下自己呆瓜自己好不容易跑一次比较,数值的位置已经定了,还不知耻的又拿去跑。不超出才怪) 2, 递归的终止条件 (这个一定要注意,要注意,要注意。if(left>=right) re原创 2017-12-16 23:01:26 · 493 阅读 · 0 评论 -
STL之Set:Set的基本用法
set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值;另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快。要注意的是,它不会重复插入相同键值的元素,而采取忽略处理。 ...转载 2018-05-23 15:37:12 · 225 阅读 · 0 评论 -
最小堆/哈希表/二叉树/平衡二叉树/红黑树的意义
接触堆数据结构是在排序里面讲的,空间复杂度O(1),时间复杂度O(NlogN),但是在实践中还是不如快速排序(好像快速排序可以更好的利用硬件特性)。堆 的意义就在于:最快的找到最大/最小值,在堆结构中插入一个值重新构造堆结构,取走最大/最下值后重新构造堆结构 其时间复杂度为O(logN),而其他方法最少为O(N).堆实践中用途不在于排序,其主要用在调度算法中,比如优...转载 2018-05-23 16:03:24 · 520 阅读 · 0 评论 -
海量数据中找Top K
使用堆这个是无疑的了,最大堆和最小堆的选择。我是在找最大的K个数,那么大部分数据是小于这个数的(m次,是10的8次方-100),那么我们来想,当然是建立小堆,大的在放进我的堆结构,这样插入的次数少。最后小堆,堆顶的元素是Top K 大数字中 最小的。但是 这样对于我们来说,获得Top K的目的最优已经达成了,至于你还有疑问,这小数据中在找出最大,已经小巫见大巫了。=================...转载 2018-05-23 23:54:44 · 204 阅读 · 0 评论 -
不引入空间 交换内容
int 或者 char 型:方法一:算术x = x + y;y = x - y;x = x - y;方法二:异或x = x^y;// 只能对int,char..y = x^y;x = x^y;x ^= y ^= x;对于字符串的交换:void strswap(char *str1, char *str2){ while (*str1 && *str2) { ...原创 2018-06-06 11:12:23 · 397 阅读 · 0 评论 -
位操作
将某一位置1,无论原来是0是1,操作后肯定是1,“按位或(即操作符'|')”一个该位为1,其余位为0的单字节数。如a=00001000,b=000000010,则a | b=00001010,即把第2位置1将某一位置0,无论原来是0是1,操作后肯定是0,“按位与(即操作符'&')”一个该位为0,其余位为1的单字节数。如a=00001010,b=11111101,则a | b=0000100...原创 2018-06-06 12:00:15 · 481 阅读 · 0 评论
分享