分类目录归档:开发语言
动态规划
理解二叉树的四种遍历-前序、中序、后序、层序
一、易懂的形象理解
其实从名字就可以很好的理解这三种遍历,我在第二点时候说,但是估计能翻到我的文的同学们之前肯定看过好多类似的了,那咱们换个思路~ 先用我想的一种简单易懂的形象思维理解一下前序、中序、后序 +层序!
1、先序遍历
先序遍历可以想象成,小人从树根开始绕着整棵树的外围转一圈,经过结点的顺序就是先序遍历的顺序
先序遍历结果:ABDHIEJCFKG
GO中参数传递的理解
针对字符、数组、切片、struct在函数调用中,使用的是传值还是传引用?做一下汇总
GO中值交换的原理
递归算法满足的三个条件
递归算法是常见的一种算法,那究竟什么样的问题可以用递归来解决呢?我总结了三个条件,只要同时满足以下三个条件,就可以用递归来解决。
1. 一个问题的解可以分解为几个子问题的解,何为子问题?
子问题就是数据规模更小的问题。比如,前面讲的电影院的例子,你要知道,“自己在哪一排”的问题,可以分解为“前一排的人在哪一排”这样一个子问题。
链表操作练习题
加强巩固对链表的理解,以及一些操作思路,从网络搜集了一些链表的操作习题,使用Go进行了一些实现。
数据结构与算法-数组 & 链表
数组是一种常见的线性表结构,它用一组连续的内存空间,来存储一组具有相同类型的数据;定义中标识出来的,是数组的3个基本特性;线性表就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向,除了数组外,链表,队列,栈也都是线性表结构;与它对应的是非线性表结构,如二叉树、堆、图等;
链表也是一种常见的线性表结构,它用一组非连续的内存空间,来存储一组具有相同类型的数据;注意和数组的区别,与数组最大的区别在于,链表是使用一组非连续的内存空间,链表分为单向链表、循环链表、双向链表、双向循环列表;
认识时间复杂度与空间复杂度
我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。
锁机制及CAS实现原理
一、锁机制
常用的锁机制有两种:悲观锁、乐观锁,下面我们分别介绍下。
1、悲观锁
- 假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。
- 悲观锁的实现,往往依靠底层提供的锁机制。
- 悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁。
Workerman-高性能socket服务框架
C语言学习笔记 – 编程基础
1、什么是编程语言?
- 通过“语言”来控制计算机,让计算机来为我们做事情,这样的语言叫编程语言(programming language)。
- 编程语言是用来控制计算机的一系列的指令(instruction),有固定的格式和词汇(不同语言的格式和词汇不一样),我们必须要遵守,否则会出错,达不到我们的目的。
C语言学习笔记(一)
一、2进制、8进制、10进制、16进制之间的转换
1)2进制、8进制、16进制 => 10进制 = 按权相加
2)10进制 => 2进制、8进制、16进制 = 除N取余 逆序排列
3)2进制、8进制、16进制间的转换
4)10进制小数 => 2进制小数 = 乘2取整、顺序排列
Yaf可选的配置项
Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置项都以ap开头. Yaf的核心必不可少的配置项只有一个(其实, 这个也可以有默认参数, 但是作者觉得完全没有配置, 显得太寒酸了).
Yaf通过在不同的环境中, 选取不同的配置节, 再结合配置可继承, 来实现一套配置适应多种环境 (线上,测试,开发).
Yaf运行时配置
Yaf运行时的环境配置:
PHP配置指令作用域说明
PHP总共有4个配置指令作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)
- PHP_INI_PERDIR:指令可以在php.ini、httpd.conf或.htaccess文件中修改
- PHP_INI_SYSTEM:指令可以在php.ini 和 httpd.conf 文件中修改
- PHP_INI_USER:指令可以在用户脚本中修改
- PHP_INI_ALL:指令可以在任何地方修改
下面举例子说明:
1、在用户脚本中修改(即在php文件中修改)
ini_set("yaf.library","/usr/local/php7/lib"); echo ini_get("yaf.library");
2、在php.ini中修改
yaf.library="/usr/local/php7/lib"
Yaf的安装
常见数据结构与算法整理总结(下)
这篇文章是常见数据结构与算法整理总结的下篇,上一篇主要是对常见的数据结构进行集中总结,这篇主要是总结一些常见的算法相关内容,文章中如有错误,欢迎指出。
一、概述 二、查找算法 三、排序算法 四、其它算法 五、常见算法题 六、总结
常见数据结构与算法整理总结(上)
文章来源:https://www.jianshu.com/p/230e6fde9c75
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出。
为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表、栈、队列等都提供了较好的实现,就是我们经常用到的Java集合框架,有需要的可以阅读这篇文章。Java – 集合框架完全解析
float与double的范围和精度
一、范围
float 和 double 的范围是由指数的位数来决定的。
float 的指数位有8位,而 double 的指数位有11位,分布如下:
float:
1bit(符号位) | 8bits(指数位) | 23bits(尾数位) |
double:
1bit(符号位) | 11bits(指数位) | 52bits(尾数位) |