- 博客(16)
- 收藏
- 关注
原创 php排序算法之桶排序
桶排序桶排序(Bucket sort)是一种基于计数的排序算法(计数排序可参考上节的内容),工作的原理是将数据分到有限数量的桶子里,然后每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)算法步骤1.设置固定数量的空桶。2.把数据放到对应的桶中。3.对每个不为空的桶中数据进行排序。4.拼接不为空的桶中数据,得到结果。动图展示PHP代码```php...
2019-12-02 12:04:00
219
原创 MySQL存储引擎
MySQL存储引擎一. 存储引擎1. 定义数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)。2. 为什么要合理选择数据库存储引擎M...
2019-04-09 17:58:00
188
转载 BitMap
一、问题引入 BitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射,怎么理解呢?举一个例子,有一个无序有界int数组{1,2,5,7},初步估计占用内存44=16字节,这倒是没什么奇怪的,但是假如有10亿个这样的数呢,10亿4/(102410241024)=3.72G左右。如果这样的一个大的数据做查找和排序,那估计内存也崩溃了,有人说,这些数据可以不用一次性加载,...
2019-04-08 16:28:35
290
原创 bit、byte的关系
bit、byte的关系1字节=8位(1 byte = 8bit)1字=2字节(1 word = 2 byte)换算:1 Byte = 8 Bits1 KB = 1024 Bytes1 MB = 1024 KB1 GB = 1024 MBByte简写为B,而bit简写为b;1B=8b;一个数字与一个字母都是占1B;一个汉字占两个字节;...
2019-04-03 18:18:08
339
原创 MySQL事物
MySQL事物1.什么是事物事务是恢复和并发控制的基本单位,事务有四个特性(ACID),原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。2.事物的应用场景比如: 甲给yi转账100,A少100,B多100。如果A少100后系统崩溃怎么办?B的钱多不了,这样金钱总数凭空少了100。这里就需要用到事务了...
2019-04-01 18:40:50
298
原创 PHP坐标系转换
PHP坐标系转换1.坐标系WGS84:地球坐标系,国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,最基础的坐标,谷歌地图在非中国地区使用的坐标系。使用地图:GPS/谷歌地图卫星。GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。并要求在中国使用的地图产品使用的都必须是加密后的坐标,而这套WGS84加密后的坐标就是gcj02。使用...
2019-03-28 17:58:36
1004
原创 B-tree,B+tree,HashTree
最近在深入了解数据库,就发现它的存储和一些数据结构有很大的关系,数据结构,要知道上大学的时候学过都忘光光了啊,所以,我把看过的一些相关知识整理出来,方便复习。1.B-treeB-树,即为B树。因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解。如人们可能会以为B-树是一种树,而B树又是一种一种树。而事实上是,B-tre...
2019-03-21 17:31:12
362
转载 深入理解 MySQL 底层实现
MySQL 的常用引擎1. InnoDBInnoDB 的存储文件有两个,后缀名分别是 .frm 和 .idb,其中 .frm 是表的定义文件,而 idb 是数据文件。InnoDB 中存在表锁和行锁,不过行锁是在命中索引的情况下才会起作用。InnoDB 支持事务,且支持四种隔离级别(读未提交、读已提交、可重复读、串行化),默认的为可重复读;而在 Oracle 数据库中,只支持串行化级别和读已...
2019-03-18 16:40:16
139
原创 PHP根据经纬度查询地理位置
PHP根据经纬度查询地理位置function getCity($longitude, $latitude){ //调取百度接口,其中ak为百度帐号key,注意location纬度在前,经度在后 $api = "http://api.map.baidu.com/geocoder/v2/?ak=ZmliRk1lEOigtcPGcDeGSimRNkVdX64H&locati...
2019-03-13 18:04:43
2550
原创 npm和cnpm安装
npm和cnpm安装1.npm安装(1)去nodejs官网下载:http://nodejs.cn/download/(2)安装到目录C:\Program Files\nodejs下(3)打开命令提示符窗口,window+R,输入cmd命令行输入npm -v如果报错,就打开控制面板-系统和安全-系统中打开高级系统配置,把nodejs的安装目录添加到环境变量中,例如我的就是C:\Prog...
2019-03-07 14:46:06
5643
1
原创 存储过程
存储过程1.什么是存储过程存储过程是一种在数据库中存储复杂程序,以便外部调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过制定存储过程的名字并给定参数(需要时)来调用执行。就是数据库SQL语言层面的代码封装与重用。MySQL5.0开始支持存储过程。2.存储过程的优点和缺点优点:(1)重复使用。存储过程可以重复使用,从而减少开发人员的工作...
2019-02-22 15:55:02
543
原创 视图
视图1.什么是视图视图是一个虚拟的表,其内容由查询定义。与真实的表一样,视图包含一系列带有名称的列和行数据,但是视图并不是以存储的数据值集形式存在,行和列数据来自由定义视图的查询所引用的表,并且在应用视图时动态生成。2.为什么使用视图举个例子:如下,如果我要查询订单的酒店信息和房型信息,SELECT room_name,hotel_name FROM rooms,hotels,order...
2019-02-21 11:23:48
211
原创 MySQL主键
MySQL主键1.什么是主键唯一标识表中每行的这个列称为主键。并不是必须的,但是没有主键不便于数据库的管理。2.成为主键的条件1.任意两行不相同的列2.每行都有一个主键值,不许为空3.主键规则主键最好建在同一行上,但不是必须,也可以建在不同行上,只要满足条件即可。...
2019-02-13 16:29:52
659
原创 win+PHPUnit单元测试
win+PHPUnit单元测试1.首先安装phpunit环境1)先去官网(https://phpunit.de)下载适合自己php版本的phpunit,把下载的文件重命名为phpunit.phar2)把放phpunit.phar的目录设置为环境变量,我的放在C:\phpStudy\PHPTutorial\WWW\phpunit下,如图:3)cmd进入到命令行,切换到C:\phpStudy...
2019-01-25 18:35:49
402
1
原创 哈夫曼树
哈夫曼树1 哈夫曼树的基本概念首先给出定义哈夫曼树所要用到的几个基本概念。(1)路径(Path):从树中的一个结点到另一个结点之间的分支构成这两个结点间的路径。(2)路径长度(Path Length):路径上的分支数。(3)树的路径长度(Path Length of Tree):从树的根结点到每个结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。(4)结点的权...
2019-01-22 15:31:35
1392
1
原创 二叉树的相关知识
二叉树的相关知识1.定义二叉树(Binary Tree)是 n(n≥0)个相同类型的结点的有限集合。n=0 的二叉树称为空二叉树(Empty Binary Tree);对于 n>0 的任意非空二叉树有:(1)有且仅有一个特殊的结点称为二叉树的根(Root)结点,根没有前驱结点;(2)若n>1,则除根结点外,其余结点被分成了 2 个互不相交的集合TL,TR,而TL、TR本身又是一棵二叉树,分...
2019-01-22 15:13:23
259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅