- 博客(6)
- 资源 (1)
- 收藏
- 关注

原创 二分查找
二分查找的核心思想是在有序的序列中,每次与中间元素比较,若比中间元素大,则查找元素出现在右半部分,反之则出现在左半部分,然后对改新的区间进行如上操作。直到找到对应元素,或者low > high 递归终止条件。时间复杂度为O(logn) 局限性 需要有序数据,对动态数据集不怎么使用,性能耗费高。适用于插入、删除操作少的场合 数据量太小不适合。数据量过小时,和线性查找耗时差不多。 ...
2019-10-19 19:30:02
239

原创 八大排序算法(C++)
0. 排序算法分析角度 a. 算法的执行效率 最好情况、最坏情况、平均时间复杂度 时间复杂度的系数、常数、低阶 比较次数、交换或移动次数 b. 算法的内存消耗 空间复杂度,当空间复杂度为O(1)时,被称为原地排序 c. 算法的稳定性 如果待排序的序列存在值相等的元素,经过排序之后,相等元素之间的先后顺序保持不变。 1. 冒泡排序 冒泡排序只会操作相邻的两个数据。每次操作都会对两个...
2019-10-13 20:58:39
332

原创 Linux CPU上下文切换对性能的影响
多个进程竞争 CPU 也会导致平均负载的升高,这是由于CPU的上下文切换导致的。 一、CPU上下文 Linux 是一个多任务操作系统,系统会在很短的时间内,将CPU时间片轮流分配给任务,由于时间片很短,就会给人以同时运行的感觉(每秒几十上百次)。 每个任务运行前,CPU 都需要知道任务从哪里加载、又从哪里开始运行CPU,需要从寄存器中恢复,跳转到程序...
2018-11-29 14:47:54
2492
1
原创 C++回调的几种方式
自己平时常用到的C++回调方式主要为两类 通过设置函数指针的方式 通过集成接口的方式(Sink下沉) 一. 设置接口sink的方式 一般都是由一个消息接口类,作为回调,需要处理返回回调的信息的类,只需要继承接口类,并实现对应的方法即可。初始化时,只需要将子类设置下去,待任务完成时,就可以实现回调。 简单的模仿一下文件传输,ITaskCallback为消息回调接口,需要该消息回调的类,只需要继承...
2019-11-24 17:53:50
1064
原创 LeetCode72 Edit Distance(编辑距离)
本题是LeetCode 第72题,可以用动态规划来求解。github地址点击链接。 Given two words word1 and word2, find the minimum number of operations required to convert word1 to word2. You have the following 3 operations permitt...
2018-08-12 21:07:35
242
原创 正则表达式小结
最近学习了正则表达式,趁还热乎,写下这篇博客,记录一下。 一、正则表达式概念 正则表达式(英语:Regular Expression,在代码中常简写为regex)。 正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本,也可以用来提取字符串。几个常用的地方:验证输入(譬如手机号
2018-02-04 21:49:46
1196
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人