算法编程
文章平均质量分 82
kc专栏
深入探索android Framework层代码,博客持续更新中!!!
展开
-
知识点
1.epoll select poll区别epoll的优点:1、没有最大并发连接的限制,能打开的FD的上限远大于1024(1G的内存上能监听约10万个端口);2、效率提升,不是轮询的方式,不会随着FD数目的增加效率下降。只有活跃可用的FD才会调用callback函数;即Epoll最大的优点就在于它只管你“活跃”的连接,而跟连接总数无关,因此在实际的网络环境中,Epoll的效率就会远远高于select和poll。3、 内存拷贝,利用mmap()文件映射内存加速与内核空间的消息传递;即epoll使用原创 2021-03-05 14:26:43 · 582 阅读 · 0 评论 -
【链表】C++链表反转、链表逆序打印
转载地址:http://blog.csdn.net/yebanxin/article/details/51942598题目:C++实现链表逆序打印、链表反转如何将链表逆序,取决于题目的要求。如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印。方法1:只逆序打印,不改变结构。采用递归,到达尾结点时打印输出,否则进入下一个结点的递归,当递归一层转载 2017-08-23 11:01:35 · 752 阅读 · 0 评论 -
二叉树前序、中序、后序遍历
三种遍历遍历即将树的所有结点访问且仅访问一次。按照根节点位置的不同分为前序遍历,中序遍历,后序遍历。前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树后序遍历:左子树->右子树->根节点前序遍历:abdefgc中序遍历:debgfac后序遍历:edgfbca递归实现:前序递归实现:void preorder(原创 2017-10-27 08:57:59 · 436 阅读 · 0 评论 -
面试题精选(一)
转载地址:http://blog.csdn.net/garfielder007/article/details/48931183数组求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2,原创 2017-10-26 21:38:22 · 598 阅读 · 0 评论 -
c++常见问题
1. c++深coy、浅copy:浅copy就是直接类的值copy,如果这个类中有指针也是直接将类中的指针的值赋给另一个,深copy指针的值是重新分配内存。http://blog.chinaunix.net/uid-28977986-id-3977861.html原创 2017-11-07 22:06:48 · 265 阅读 · 0 评论 -
malloc和free函数详解
malloc和free函数详解转载地址:https://www.cnblogs.com/hanyonglu/archive/2011/04/28/2031271.html本文介绍malloc和free函数的内容。 在C中,对内存的管理是相当重要。下面开始介绍这两个函数: 一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:转载 2017-11-08 22:57:13 · 486 阅读 · 0 评论 -
内存对齐
转载地址:http://blog.csdn.net/hairetz/article/details/4084088写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?讲讲字节对齐吧. /******************************分割线如果体系结构是不对齐的,A中的成员将会一个挨一转载 2017-11-09 09:43:25 · 303 阅读 · 0 评论 -
面试题精选(二)
数组题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是 O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组 1、2、4、7、11、15 和数字 15。由于 4+11=15,因此输出 4 和 11。由于是有序的,可以用双指针来做。第一个指针i指向a[0],第二个j指向a[n-1],若a[i原创 2017-10-31 19:41:27 · 354 阅读 · 1 评论 -
c++ const成员函数
转载地址:http://blog.csdn.net/lihao21/article/details/8634876我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误。例如,const char blank = ‘’;blank = ‘\n’; // 错误面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员。若要修改类对象转载 2017-11-14 10:33:54 · 352 阅读 · 0 评论